Laminas Project (formerly Zend Framework or ZF) is an
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
,
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
web application framework implemented in
PHP 7 and licensed under the
New BSD License.
The framework is basically a collection of professional
PHP-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
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:
* the model, the internal representat ...
(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
A uniform resource locator (URL), colloquially known as an address on the Web, is a reference to a resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identi ...
, and controller functions in combination with the model and view to develop and create the final web page.
On 17 April 2019 it was announced that the framework is transitioning into an open source project hosted by the
Linux Foundation
The Linux Foundation (LF) is a non-profit organization established in 2000 to support Linux development and open-source software projects.
Background
The Linux Foundation started as Open Source Development Labs in 2000 to standardize and prom ...
to be known as Laminas.
License
Laminas is licensed under the
Open Source Initiative
The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software".
Governance
The ...
(OSI)-approved
New BSD License. All new contributions are required to be accompanied with
Developer Certificate of Origin affirmation.
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
The Apache Software Foundation ( ; ASF) is an American nonprofit corporation (classified as a 501(c)(3) organization in the United States) to support a number of open-source software projects. The ASF was formed from a group of developers of the ...
’s CLA. The licensing and contribution policies were established to prevent intellectual property issues for
commercial
Commercial may refer to:
* (adjective for) commerce, a system of voluntary exchange of products and services
** (adjective for) trade, the trading of something of economic value such as goods, services, information or money
* a dose of advertising ...
ZF users, according to Zend's Andi Gutmans. ZF2 and later is CLA free.
Components and versioning
Laminas Project follows
semantic versioning. Framework components are versioned independently and released as separate
Composer
A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music.
Etymology and def ...
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.
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.
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:
Installation
Officially supported install method is via
Composer
A composer is a person who writes music. The term is especially used to indicate composers of Western classical music, or those who are composers by occupation. Many composers are, or were, also skilled performers of music.
Etymology and def ...
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
Zend, formerly Zend Technologies, is a Minneapolis, Minnesota-based software company. The company's products, which include Zend Studio, assist software developers with developing, deploying, and managing PHP-based web applications.
The company w ...
, co-founded by
PHP core contributors
Andi Gutmans and
Zeev Suraski, was the original corporate sponsor of Zend Framework.
Technology partners include
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
,
Google
Google LLC (, ) is an American multinational corporation and technology company focusing on online advertising, search engine technology, cloud computing, computer software, quantum computing, e-commerce, consumer electronics, and artificial ...
,
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
,
Adobe Systems
Adobe Inc. ( ), formerly Adobe Systems Incorporated, is an American software, computer software company based in San Jose, California. It offers a wide range of programs from web design tools, photo manipulation and vector creation, through to ...
,
and
StrikeIron.
Features
Laminas features include:
* 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.
*
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
MariaDB is a community-developed, commercially supported Fork (software development), fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Developm ...
,
MySQL
MySQL () is an Open-source software, open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A rel ...
,
Oracle
An oracle is a person or thing considered to provide insight, wise counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. If done through occultic means, it is a form of divination.
Descript ...
,
IBM Db2,
Microsoft SQL Server
Microsoft SQL Server is a proprietary relational database management system developed by Microsoft using Structured Query Language (SQL, often pronounced "sequel"). As a database server, it is a software product with the primary function of ...
,
PostgreSQL
PostgreSQL ( ) also known as Postgres, is a free and open-source software, free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transaction processing, transactions ...
,
SQLite, and
Informix Dynamic Server
Informix is a product family within IBM's Information Management division that is centered on several relational database management system (RDBMS) and multi-model database offerings. The Informix products were originally developed by Informi ...
* Email composition and delivery, retrieval via
mbox
Mbox is a generic term for a family of related file formats used for holding collections of email messages. It was first implemented in Research Unix, Fifth Edition Unix.
All messages in an mbox mailbox are Concatenation, concatenated and store ...
,
Maildir
The Maildir e-mail format is a common way of storing email messages on a file system, rather than in a database. Each message is assigned a Computer file, file with a unique name, and each mail folder is a file system directory containing these fil ...
,
POP3
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. Today, POP version 3 (POP3) is the most commonly used version. Together with IMAP, i ...
and
IMAP4
* Flexible caching sub-system with support for many types of backends, such as
memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembe ...
or a
file system.
* With the help of
remote procedure call
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared computer network), which is written as if it were a ...
(RPC) and REST(
Representational State Transfer
REST (Representational State Transfer) is a software architectural style that was created to describe the design and guide the development of the architecture for the World Wide Web. REST defines a set of constraints for how the architecture of ...
) services, Zend Apigility helps developers to create APIs, authentication of
APIs, documentation of APIs, Easy Modification
Development of applications
Laminas applications can run on any PHP stack that fulfills the technical requirements. Zend Technologies provides a PHP stack,
Zend Server
{{Infobox software
, title = Zend Server
, name = Zend Server
, logo =
, logo caption = Zend Server
, screenshot =
, caption =
, collapsible =
, author = Zend Technologies
, developer = Perforce
, released = 2009
, discontinued =
, ...
(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.
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. 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
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
, and test standards. All code must meet project coding standards and
unit tests must reach 80%
code coverage
In software engineering, code coverage, also called test coverage, is a percentage measure of the degree to which the source code of a program is executed when a particular test suite is run. A program with high code coverage has more of its ...
before the corresponding code may be moved to the release branch.
Simple cloud API
On September 22, 2009,
Zend Technologies
Zend, formerly Zend Technologies, is a Minneapolis, Minnesota-based software company. The company's products, which include Zend Studio, assist software developers with developing, deploying, and managing PHP-based web applications.
The company w ...
announced
that it would be working with technology partners including
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
,
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
,
Rackspace
Rackspace Technology, Inc. is an American cloud computing company based in San Antonio, Texas. It also has offices in Blacksburg, Virginia, Blacksburg, Virginia and Austin, Texas, as well as in Australia, Canada, United Kingdom, India, Dubai, Sw ...
,
Nirvanix
Nirvanix is an American-based provider of business phone systems, VoIP services, hosted PBX, SIP Trunks, and cloud storage services headquartered in San Diego, California, United States. The company offers a variety of business phone solutions ...
, and
GoGrid along with the Zend Framework community to develop a common API to
cloud
In meteorology, a cloud is an aerosol consisting of a visible mass of miniature liquid droplets, frozen crystals, or other particles, suspended in the atmosphere of a planetary body or similar space. Water or various other chemicals may ...
application services called the
Simple Cloud API
The Simple Cloud API is an Application Programming Interface, API (Application Programming Interface). It enables users to access cloud application services written in the PHP programming language across different cloud computing platforms. It wa ...
. This project is part of Zend Framework and will be hosted on the Zend Framework website,
but a separate site called simplecloud.org 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.
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.
The first stable release of Zend Framework 2.0 was released 5 September 2012.
See also
*
Comparison of web frameworks
*
New BSD License
*
Zend Server
{{Infobox software
, title = Zend Server
, name = Zend Server
, logo =
, logo caption = Zend Server
, screenshot =
, caption =
, collapsible =
, author = Zend Technologies
, developer = Perforce
, released = 2009
, discontinued =
, ...
*
Zend Studio
References
External links
*
Zend Framework
{{Authority control
Free computer libraries
Free content management systems
PHP frameworks
Software using the BSD license
Web frameworks