Laminas


Laminas Project is an open source, object-oriented 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 in combination with Front Controller solution. 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.
On 17 April 2019 it was announced 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 -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 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. ZF2 and later is CLA free.

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.
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:
ComponentDescription
AuthenticationAuthenticate users via a variety of adapters, and provide the authenticated identity to your application.
BarcodeProgrammatically create and render barcodes as images or in PDFs.
CacheCaching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output.
CaptchaGenerate and validate CAPTCHAs using Figlets, images, ReCaptcha, and more.
CodeExtensions to the PHP Reflection API, static code scanning, and code generation.
Component InstallerComposer plugin for injecting modules and configuration providers into application configuration.
ConfigRead and write configuration files.
Config AggregatorAggregate and merge configuration from a variety of sources.
ConsoleBuild console applications using getopt syntax or routing, complete with prompts
CryptStrong cryptography tools and password hashing.
DBDatabase abstraction layer, SQL abstraction, result set abstraction, and RowDataGateway and TableDataGateway implementations.
DebugSafely dump debug information to HTML.
DIAutomated dependency injection and instance manager.
DiactorosPSR-7 HTTP message implementations.
DOMQuery HTML and XML documents using XPath or CSS selectors.
EscaperSecurely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs.
EventManagerImplement events, signal slots, aspects, and observers!
ExpressivePSR-7 middleware in minutes.
FeedConsume and generate Atom and RSS feeds, and interact with Pubsubhubbub.
FileLocate PHP classfiles.
FilterProgrammatically filter and normalize data and files.
FormValidate and display simple and complex forms, casting forms to business objects and vice versa.
HAL for PSR-7Hypertext Application Language for PSR-7.
HTTPHTTP message and header abstractions, and HTTP client implementation.
HydratorSerialize objects to arrays, and vice versa.
InputFilterNormalize and validate input sets from the web, APIs, the CLI, and more, including files.
InternationalizationProvide translations for your application, and filter and validate internationalized values.
JSONDe/Serialize JSON in PHP, including JavaScript expressions.
JSON-RPC ServerJSON-RPC implementation for PHP.
LDAPPerform LDAP operations, including binding, searching and modifying entries in an LDAP directory.
LoaderAutoloading and plugin loading strategies.
LogRobust, composite logger with filtering, formatting, and PSR-3 support.
MailParse, create, store, and send email messages, using a variety of storage and transport protocols.
MathCreate cryptographically secure pseudo-random numbers, and manage big integers.
MemoryManage data in an environment with limited memory.
MIMECreate and parse MIME messages and parts.
Module ManagerModular application system for zend-mvc applications.
MVCLaminas's event-driven MVC layer, including MVC Applications, Controllers, and Plugins.
MVC-Console integrationIntegration between zend-mvc and zend-console.
MVC-i18n integrationIntegration between zend-mvc and zend-i18n.
fileprg pluginPost/Redirect/Get plugin with file upload handling for zend-mvc controllers.
flashmessenger pluginPlugin for creating and exposing flash messages via zend-mvc controllers.
identity pluginPlugin for retrieving the current authenticated identity within zend-mvc controllers.
prg pluginPost/Redirect/Get plugin for zend-mvc controllers.
NavigationManage trees of pointers to web pages in order to build navigation systems.
PaginatorPaginate collections of data from arbitrary sources.
ACLCreate, manage, and query access control lists.
RBACProvide and query Role-Based Access Controls for your application.
Problem DetailsPSR-7 Problem Details for HTTP API responses and middleware.
ProgressBarCreate and update progress bars in different environments.
PSR-7 BridgePSR-7 <-> zend-http message conversions.
RouterFlexible routing system for HTTP and console applications.
SerializerSerialize and deserialize PHP structures to a variety of representations.
ServerCreate Reflection-based RPC servers.
ServiceManagerFactory-Driven Dependency Injection Container
ServiceManager-Di integrationzend-di integration for zend-servicemanager
SessionObject-oriented interface to PHP sessions and storage.
SOAPCreate, serve, and access SOAP applications, and parse and generate WSDL.
StdlibSPL extensions, array utilities, error handlers, and more.
StratigilityPSR-7 middleware foundation for building and dispatching middleware pipelines.
TagManipulate and weight taggable items, and create tag clouds.
TestTools to facilitate unit testing of zend-mvc applications.
TextCreate FIGlets and text-based tables.
URIObject oriented interface to URIs, with facilities for validation.
ValidatorValidation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria.
ViewFlexible view layer supporting and providing multiple view layers, helpers, and more.
XML-RPCFully featured XML-RPC server and client implementations.
XML2JSONConvert 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.