Laminas#Simple cloud API
{{Short description|PHP web application and component framework}}
{{Distinguish|Zend Engine}}
{{cleanup rewrite|date=April 2017}}
{{Infobox software
| name = Laminas
| developer = Laminas Project
| released =
| repo = {{URL|https://github.com/laminas|Laminas Repository}}
{{URL|https://github.com/mezzio|Mezzio Repository}}
{{URL|https://github.com/laminas-api-tools|Laminas API Tools Repository}}
| programming language = PHP
| operating system = Cross-platform
| license = New BSD license
| website = {{Official URL}}
}}
{{Infobox software
| name = Zend Framework
| logo = ZendFramework-Logo.png
| developer = Zend Technologies
| released = {{Start date and age|2006|03|03}}{{cite web |url=http://framework.zend.com/downloads/archives |title=Archives |website=Zend Framework |access-date=May 1, 2013 |archive-date=May 10, 2013 |archive-url=https://web.archive.org/web/20130510124030/http://framework.zend.com/downloads/archives |url-status=live }}
| latest release date = {{Start date and age|2016|6|28}}
| discontinued = yes
| repo = {{URL|https://github.com/zendframework/zendframework|Zend Repository}}
| programming language = PHP 7
| operating system = Cross-platform
| license = New BSD license
| website = {{URL|https://framework.zend.com/}}
}}
Laminas Project (formerly Zend Framework or ZF) is an open source, object-oriented web application framework implemented in PHP 7 and licensed under the New BSD License.{{cite web | url=http://framework.zend.com/manual/en/introduction.html | access-date=2009-02-12 | title=Introduction to Zend Framework | work=ZF Programmer's Reference Guide | archive-date=2009-02-11 | archive-url=https://web.archive.org/web/20090211210131/http://framework.zend.com/manual/en/introduction.html | url-status=dead }} The framework is basically a collection of professional PHP{{Cite web|url=https://www.w3schools.com/php/|title=PHP 5 Tutorial|website=www.w3schools.com|language=en-US|access-date=2017-02-20}}-based packages. The framework uses various packages by the use of Composer as part of its package dependency managers; some of them are PHPUnit for testing all packages, Travis CI for continuous Integration Services. Laminas provides to users a support of the model–view–controller (MVC) in combination with Front Controller solution.Supaartagorn, C. (2011). PHP Framework for database management based on MVC pattern. International Journal of Computer Science & Information Technology (IJCSIT), 3(2), 251-258. MVC implementation in Laminas has five main areas. The router and dispatcher functions to decide which controller to run based on data from URL, and controller functions in combination with the model and view to develop and create the final web page.{{Cite web|url=https://framework.zend.com/about|title=Zend Framework - About|website=framework.zend.com|access-date=2017-02-05|archive-date=2017-02-06|archive-url=https://web.archive.org/web/20170206103726/https://framework.zend.com/about|url-status=live}}
On 17 April 2019 it was announced{{cite web|url=https://framework.zend.com/blog/2019-04-17-announcing-laminas.html|title=From Zend to Laminas|date=17 April 2019}} that the framework is transitioning into an open source project hosted by the Linux Foundation to be known as Laminas.
License
Laminas is licensed under the Open Source Initiative (OSI)-approved New BSD License. All new contributions are required to be accompanied with Developer Certificate of Origin affirmation.{{cite web| url=https://github.com/laminas/technical-steering-committee/blob/main/CHARTER.md| title=Technical Charter (the "Charter") for Laminas Project a Series of LF Projects, LLC.| website=GitHub| access-date=2022-08-03| archive-date=2022-08-03| archive-url=https://web.archive.org/web/20220803195455/https://github.com/laminas/technical-steering-committee/blob/main/CHARTER.md| url-status=live}}
Zend Framework also licensed under New BSD License. For ZF1 all code contributors were required to sign a Contributor License Agreement (CLA) based on the Apache Software Foundation’s CLA. The licensing and contribution policies were established to prevent intellectual property issues for commercial ZF users, according to Zend's Andi Gutmans.{{cite web | last=Gutmans | first=Andi | title=Zend Framework (post is too long so make sure to grab coffee) | date=2005-10-27 | url=http://andigutmans.blogspot.com/2005_10_01_archive.html | work=Andi on Web & IT | access-date=2009-02-11 | archive-date=2011-07-08 | archive-url=https://web.archive.org/web/20110708023244/http://andigutmans.blogspot.com/2005_10_01_archive.html | url-status=live }} ZF2 and later is CLA free.{{cite web | url=http://framework.zend.com/participate/contributor-guide-v1 | title=Contributor Guide (ZF v1)}}
Components and versioning
Laminas Project follows semantic versioning. Framework components are versioned independently and released as separate Composer packages. Dependencies between framework components are declared as Composer dependencies using semantic versioning ranges.
Prior to Zend Framework version 2.5 all components shared the same version. Starting with Zend Framework version 2.5, components were split into independently versioned packages and zendframework/zendframework converted into a Composer meta-package.{{cite web |url=https://github.com/zendframework/zendframework/issues/7072| title=Split Framework | website=GitHub}}
Framework components introduced after the split started at version 1.0 while existing components continued from 2.5. New components were not added to the meta-package and meta-package itself was discontinued after 3.0.0 release.
Zend Framework 3 was the last release before framework wide versioning was discontinued.{{cite web|author=zendframework|url=https://framework.zend.com/blog/2016-06-28-zend-framework-3.html|title=Zend Framework 3 Released!|date=2016-06-28|access-date=2016-10-12|archive-date=2022-01-24|archive-url=https://web.archive.org/web/20220124000755/https://framework.zend.com/blog/2016-06-28-zend-framework-3.html|url-status=live}} In Zend Framework 3 major versions of individual components did not match framework version anymore and caused confusion. Some components such as zend-mvc and zend-servicemanager received matching major version release but other remained on version 2 while newly introduced zend-diactoros, zend-stratigility and zend-expressive were at major version 1.
Laminas Project does not carry a single framework version. Components transitioned from Zend Framework continued with existing versions and had all past releases migrated from their counterparts. zendframework/zendframework meta-package does not have a counterpart in Laminas.
Laminas includes following components:{{Cite web|url=https://docs.zendframework.com/|title=Documentation for the ZF components}}
class="wikitable"
! Component ! Description |
Authentication
|Authenticate users via a variety of adapters, and provide the authenticated identity to your application. |
Barcode
|Programmatically create and render barcodes as images or in PDFs. |
Cache
|Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output. |
Captcha
|Generate and validate CAPTCHAs using Figlets, images, ReCaptcha, and more. |
Code
|Extensions to the PHP Reflection API, static code scanning, and code generation. |
Component Installer
|Composer plugin for injecting modules and configuration providers into application configuration. |
Config
|Read and write configuration files. |
Config Aggregator
|Aggregate and merge configuration from a variety of sources. |
Console
|Build console applications using getopt syntax or routing, complete with prompts |
Crypt
|Strong cryptography tools and password hashing. |
DB
|Database abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations. |
Debug
|Safely dump debug information to HTML. |
DI
|Automated dependency injection and instance manager. |
Diactoros
|PSR-7 HTTP message implementations. |
DOM
|Query HTML and XML documents using XPath or CSS selectors. |
Escaper
|Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs. |
EventManager
|Implement events, signal slots, aspects, and observers! |
Expressive
|PSR-7 middleware in minutes. |
Feed
|Consume and generate Atom and RSS feeds, and interact with Pubsubhubbub. |
File
|Locate PHP classfiles. |
Filter
|Programmatically filter and normalize data and files. |
Form
|Validate and display simple and complex forms, casting forms to business objects and vice versa. |
HAL for PSR-7
|Hypertext Application Language (HAL) for PSR-7. |
HTTP
|HTTP message and header abstractions, and HTTP client implementation. (Not a PSR-7 implementation.) |
Hydrator
|Serialize objects to arrays, and vice versa. |
InputFilter
|Normalize and validate input sets from the web, APIs, the CLI, and more, including files. |
Internationalization
|Provide translations for your application, and filter and validate internationalized values. |
JSON
|De/Serialize JSON in PHP, including JavaScript expressions. |
JSON-RPC Server
|JSON-RPC implementation for PHP. |
LDAP
|Perform LDAP operations, including binding, searching and modifying entries in an LDAP directory. |
Loader
|Autoloading and plugin loading strategies. |
Log
|Robust, composite logger with filtering, formatting, and PSR-3 support. |
Mail
|Parse, create, store, and send email messages, using a variety of storage and transport protocols. |
Math
|Create cryptographically secure pseudo-random numbers, and manage big integers. |
Memory
|Manage data in an environment with limited memory. |
MIME
|Create and parse MIME messages and parts. |
Module Manager
|Modular application system for zend-mvc applications. |
MVC
|Laminas's event-driven MVC layer, including MVC Applications, Controllers, and Plugins. |
MVC-Console integration
|Integration between zend-mvc and zend-console. |
MVC-i18n integration
|Integration between zend-mvc and zend-i18n. |
fileprg() plugin
|Post/Redirect/Get plugin with file upload handling for zend-mvc controllers. |
flashmessenger() plugin
|Plugin for creating and exposing flash messages via zend-mvc controllers. |
identity() plugin
|Plugin for retrieving the current authenticated identity within zend-mvc controllers. |
prg() plugin
|Post/Redirect/Get plugin for zend-mvc controllers. |
Navigation
|Manage trees of pointers to web pages in order to build navigation systems. |
Paginator
|Paginate collections of data from arbitrary sources. |
ACL
|Create, manage, and query access control lists. |
RBAC
|Provide and query Role-Based Access Controls for your application. |
Problem Details
|PSR-7 Problem Details for HTTP API responses and middleware. |
ProgressBar
|Create and update progress bars in different environments. |
PSR-7 Bridge
|PSR-7 <-> zend-http message conversions. |
Router
|Flexible routing system for HTTP and console applications. |
Serializer
|Serialize and deserialize PHP structures to a variety of representations. |
Server
|Create Reflection-based RPC servers. |
ServiceManager
|Factory-Driven Dependency Injection Container |
ServiceManager-Di integration
|zend-di integration for zend-servicemanager |
Session
|Object-oriented interface to PHP sessions and storage. |
SOAP
|Create, serve, and access SOAP applications, and parse and generate WSDL. |
Stdlib
|SPL extensions, array utilities, error handlers, and more. |
Stratigility
|PSR-7 middleware foundation for building and dispatching middleware pipelines. |
Tag
|Manipulate and weight taggable items, and create tag clouds. |
Test
|Tools to facilitate unit testing of zend-mvc applications. |
Text
|Create FIGlets and text-based tables. |
URI
|Object oriented interface to URIs, with facilities for validation. |
Validator
|Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria. |
View
|Flexible view layer supporting and providing multiple view layers, helpers, and more. |
XML-RPC
|Fully featured XML-RPC server and client implementations. |
XML2JSON
|Convert XML documents to JSON. |
Installation
Officially supported install method is via Composer package manager.
Laminas provides meta-package that includes 61 component but recommended way is to install required framework components individually. Composer will resolve and install all additional dependencies.
For instance, if you need MVC package, you can install with the following command:
$ composer require laminas/laminas-mvc
Full list of components is available in Laminas Framework documentation.
Anatomy of the framework
Laminas follows configuration-over-convention approach and does not impose any particular application structure. Skeleton applications for zend-mvc and zend-expressive are available and provide everything necessary to run applications and to serve as a good starting point.
Sponsor and partners
Zend Technologies, co-founded by PHP core contributors Andi Gutmans and Zeev Suraski, was the original corporate sponsor of Zend Framework.{{cite web|access-date=2009-02-11|url=http://www.php.net/history|title=History of PHP and related projects|publisher=The PHP Group|archive-date=2008-07-08|archive-url=https://web.archive.org/web/20080708214256/http://www.php.net/history|url-status=live}} Technology partners include IBM,{{cite news | last=LaMonica | first=Martin | title=IBM backs open-source Web software | url=http://news.cnet.com/IBM-backs-open-source-Web-software/2100-7344_3-5589559.html?tag=nw.14 | access-date=2009-02-11 | work=cnet.com | date=2005-02-25}} Google,{{cite web | last=Kernel | first=Sean Michael | title=Google Data Joins PHP Zend Framework | url=http://www.internetnews.com/dev-news/article.php/3650066 | access-date=2009-02-11 | work=internetnews.com | date=2006-12-20 | archive-date=2021-06-12 | archive-url=https://web.archive.org/web/20210612225332/https://www.internetnews.com/dev-news/article.php/3650066 | url-status=live }} Microsoft,{{cite web | last=Krill | first=Paul | title=Microsoft, Zend boost PHP for Windows | url=http://www.infoworld.com/article/06/10/31/HNzenphp_1.html | access-date=2009-02-11 | work=infoworld.com | date=2006-10-31 | archive-date=2009-03-10 | archive-url=https://web.archive.org/web/20090310072420/http://www.infoworld.com/article/06/10/31/HNzenphp_1.html | url-status=dead }} Adobe Systems,{{cite web | last=Potter | first=Mike | title=Adobe Contributing AMF Support to Zend Framework | access-date=2009-02-11 | url=http://blogs.adobe.com/flex/archives/2008/07/adobe_contributing_amf_support.html | archive-url=https://web.archive.org/web/20090207073623/http://blogs.adobe.com/flex/archives/2008/07/adobe_contributing_amf_support.html | url-status=dead | archive-date=2009-02-07 | date=2014-05-21 | work=The Official Flex Team Blog}} and StrikeIron.{{cite web | url=http://www.strikeiron.com/partners/featured_partners.aspx | title=StrikeIron Featured Partners | access-date=2009-02-11 | archive-date=2009-04-11 | archive-url=https://web.archive.org/web/20090411151203/http://www.strikeiron.com/partners/featured_partners.aspx | url-status=dead }}
Features
- All components are fully object-oriented PHP 5 and are E_STRICT compliant, which helps in the development of building tests and writing codes in a bug-free and crash-proof application manner.[http://www.suntecoss.com/blog/why-to-use-zend-framework/ Why to Use Zend Framework?] {{Webarchive|url=https://web.archive.org/web/20160508185108/http://www.suntecoss.com/blog/why-to-use-zend-framework/ |date=2016-05-08 }} By SuntecOSS, Retrieved, April 21st, 2016
- Use-at-will architecture with loosely coupled components and minimal interdependencies
- Extensible MVC implementation supporting layouts and PHP-based templates by default
- Support for multiple database systems and vendors, including MariaDB, MySQL, Oracle, IBM Db2, Microsoft SQL Server, PostgreSQL, SQLite, and Informix Dynamic Server
- Email composition and delivery, retrieval via mbox, Maildir, POP3 and IMAP4
- Flexible caching sub-system with support for many types of backends, such as memory or a file system.
- With the help of remote procedure call (RPC) and REST(Representational State Transfer) services, Zend Apigility helps developers to create APIs, authentication of APIs, documentation of APIs, Easy Modification[http://www.suntecoss.com/blog/zend-apigility-an-open-source-api-builder-for-developing-quality-apis/ Zend’s Apigility, an Open Source API Builder for Developing Quality APIs] By SuntecOSS, Retrieved, May 19th, 2016
Development of applications
Laminas applications can run on any PHP stack that fulfills the technical requirements. Zend Technologies provides a PHP stack, Zend Server (or Zend Server Community Edition), which is advertised to be optimized for running Laminas applications. Zend Server includes Zend Framework in its installers, along with PHP and all required extensions. According to Zend Technologies, Zend Server provides improved performance for PHP and especially Zend Framework applications through opcode acceleration and several caching capabilities, and includes application monitoring and diagnostics facilities.{{cite web|url=http://www.zend.com/products/server|title=Zend site|website=Zend.com|access-date=May 17, 2017}} Zend Studio is an IDE that includes features specifically to integrate with Zend Framework. It provides an MVC view, MVC code generation based on Zend_Tool (a component of the Zend Framework), a code formatter, code completion, parameter assist, and more.{{cite web|url=http://www.zend.com/en/products/studio/features#ZFI|title=Download Zend Studio - IDE, PHP profiler, mobile, unit testing & more|website=www.Zend.com|access-date=May 17, 2017|archive-date=June 1, 2017|archive-url=https://web.archive.org/web/20170601031116/http://www.zend.com/en/products/studio/features#ZFI|url-status=dead}} Zend Studio is not free software, whereas the Zend Framework and Zend Server Community Edition are free. Zend Server is compatible with common debugging tools such as Xdebug. Other developers may want to use a different PHP stack and another IDE such as Eclipse PDT which works well together with Zend Server. A pre configured, free version of Eclipse PDT with Zend Debug is available on the Zend web site.
Code, documentation, and test standards
Code contributions to Laminas are subject to rigorous code, documentation, and test standards. All code must meet project coding standards and unit tests must reach 80% code coverage before the corresponding code may be moved to the release branch.{{cite web
| date = July 1, 2006
| title = Zend Framework Contributor Guide
| url = http://framework.zend.com/wiki/display/ZFDEV/Zend+Framework+Contributor+Guide
| access-date = July 14, 2008
| archive-date = May 18, 2008
| archive-url = https://web.archive.org/web/20080518095823/http://framework.zend.com/wiki/display/ZFDEV/Zend+Framework+Contributor+Guide
| url-status = dead
}}
Simple cloud API
{{main|Simple Cloud API}}
On September 22, 2009, Zend Technologies announced{{cite web|title=Simple Cloud API Press Release |url=http://www.zend.com/en/company/news/press/zend-teams-with-ibm-microsoft-rackspace-and-other-cloud-leaders-on-open-source-initiative-to-drive-cloud-application-development |access-date=2009-11-05 |url-status=dead |archive-url=https://web.archive.org/web/20091201014623/http://www.zend.com/en/company/news/press/zend-teams-with-ibm-microsoft-rackspace-and-other-cloud-leaders-on-open-source-initiative-to-drive-cloud-application-development |archive-date=December 1, 2009 }} that it would be working with technology partners including Microsoft, IBM, Rackspace, Nirvanix, and GoGrid along with the Zend Framework community to develop a common API to cloud application services called the Simple Cloud API. This project is part of Zend Framework and will be hosted on the Zend Framework website,{{cite web | title=Zend Framework website | url=http://framework.zend.com/ | access-date=2009-11-05 | archive-date=2009-06-05 | archive-url=https://web.archive.org/web/20090605135222/http://framework.zend.com/ | url-status=live }} but a separate site called simplecloud.org{{Cite web |url=http://www.simplecloud.org/ |title=simplecloud.org |access-date=2009-11-05 |archive-date=2009-09-25 |archive-url=https://web.archive.org/web/20090925140450/http://simplecloud.org/ |url-status=dead }} has been launched to discuss and download the most current versions of the API. The Simple Cloud API and several Cloud Services are included in Zend Framework. The adapters to popular cloud services have reached production quality.
Current development
Zend Framework 3.0 was released on June 28, 2016. It includes new components like a JSON RPC server, a XML to JSON converter, PSR-7 functionality, and compatibility with PHP 7. Zend Framework 3.0 runs up to 4 times faster than Zend Framework 2, and the packages have been decoupled to allow for greater reuse. The contributors of Zend Framework are actively encouraging the use of Zend Framework version 3.x. The stated end of life for Zend Framework 1 is 2016-09-28, and for Zend Framework 2 is 2018-03-31. The first development release of Zend Framework 2.0 was released on August 6, 2010.{{cite web | title=Zend Framework 2.0.0dev1 | url=http://devzone.zend.com/article/12385-First-Development-Milestone-of-ZF-2.0-Released | date=2010-08-06 | access-date=2010-09-04 | archive-date=2010-08-21 | archive-url=https://web.archive.org/web/20100821104644/http://devzone.zend.com/article/12385-First-Development-Milestone-of-ZF-2.0-Released | url-status=dead }} Changes made in this release were the removal of require_once
statements, migration to PHP 5.3 namespaces, a refactored test suite, a rewritten Zend\Session
, and the addition of the new Zend\Stdlib
. The second development release was on November 3, 2010.{{cite web | title=Zend Framework 2.0.0dev2 | url=http://framework.zend.com/announcements/2010-11-03-zf2dev2 | date=2011-11-03 | access-date=2011-03-18 | archive-date=2011-07-16 | archive-url=https://web.archive.org/web/20110716095940/http://framework.zend.com/announcements/2010-11-03-zf2dev2 | url-status=dead }} The first stable release of Zend Framework 2.0 was released 5 September 2012.{{cite web |url=http://framework.zend.com/blog/zend-framework-2-0-0-stable-released.html |title=Zend Framework 2.0.0 STABLE Released! - Zend Framework - Zend Framework |publisher=Framework.zend.com |date=September 5, 2012 |access-date=June 14, 2013 |archive-date=July 21, 2021 |archive-url=https://web.archive.org/web/20210721001318/https://framework.zend.com/blog/zend-framework-2-0-0-stable-released.html |url-status=live }}
See also
{{Portal|Free and open-source software}}
References
{{Reflist|2}}
External links
- {{Official website}}
- [https://framework.zend.com/ Zend Framework]
{{PHP}}
{{Application frameworks}}
{{Authority control}}
Category:Free computer libraries
Category:Free content management systems