mezzio / mezzio
PSR-15 Middleware Microframework
Fund package maintenance!
Community Bridge
Installs: 2 547 669
Dependents: 87
Suggesters: 2
Security: 0
Stars: 348
Watchers: 33
Forks: 53
Open Issues: 22
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0
- fig/http-message-util: ^1.1.5
- laminas/laminas-httphandlerrunner: ^2.1
- laminas/laminas-stratigility: ^3.5
- mezzio/mezzio-router: ^3.7
- mezzio/mezzio-template: ^2.2
- psr/container: ^1.0||^2.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0.1 || ^2.0.0
- psr/http-server-middleware: ^1.0
- webmozart/assert: ^1.11.0
Requires (Dev)
- filp/whoops: ^2.16.0
- laminas/laminas-coding-standard: ~2.5.0
- laminas/laminas-diactoros: ^3.4.0
- laminas/laminas-servicemanager: ^3.22.1
- mezzio/mezzio-fastroute: ^3.11
- mezzio/mezzio-laminasrouter: ^3.9
- phpunit/phpunit: ^10.5.36
- psalm/plugin-phpunit: ^0.19.0
- vimeo/psalm: ^5.26.1
Suggests
- filp/whoops: ^2.1 to use the Whoops error handler
- laminas/laminas-auradi-config: ^2.0 to use Aura.Di dependency injection container
- laminas/laminas-pimple-config: ^1.0 to use Pimple for dependency injection container
- laminas/laminas-servicemanager: ^3.3 to use laminas-servicemanager for dependency injection
- mezzio/mezzio-helpers: ^3.0 for its UrlHelper, ServerUrlHelper, and BodyParseMiddleware
- mezzio/mezzio-tooling: ^1.0 for migration and development tools; require it with the --dev flag
- psr/http-message-implementation: Please install a psr/http-message-implementation to consume Mezzio; e.g., laminas/laminas-diactoros
Conflicts
- container-interop/container-interop: <1.2.0
- filp/whoops: <2.14.4
- laminas/laminas-diactoros: <1.7.1
- laminas/laminas-http: <2.15.0
- laminas/laminas-router: <3.5.0
- laminas/laminas-stdlib: <3.6.0
- zendframework/zend-expressive: *
- 4.0.x-dev
- 3.21.x-dev
- 3.20.x-dev
- 3.20.1
- 3.20.0
- 3.19.x-dev
- 3.19.1
- 3.19.0
- 3.18.x-dev
- 3.18.0
- 3.17.x-dev
- 3.17.0
- 3.16.x-dev
- 3.16.3
- 3.16.2
- 3.16.1
- 3.16.0
- 3.15.x-dev
- 3.15.0
- 3.14.x-dev
- 3.14.0
- 3.13.x-dev
- 3.13.0
- 3.12.x-dev
- 3.12.0
- 3.11.x-dev
- 3.11.0
- 3.10.x-dev
- 3.10.0
- 3.9.x-dev
- 3.9.0
- 3.8.x-dev
- 3.8.0
- 3.7.x-dev
- 3.7.0
- 3.6.x-dev
- 3.6.1
- 3.6.0
- 3.5.x-dev
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.x-dev
- 3.4.1
- 3.4.0
- 3.3.x-dev
- 3.3.1
- 3.3.0
- 3.2.x-dev
- 3.2.2
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0rc5
- 3.0.0rc4
- 3.0.0rc3
- 3.0.0rc2
- 3.0.0rc1
- 3.0.0alpha9
- 3.0.0alpha8
- 3.0.0alpha7
- 3.0.0alpha6
- 3.0.0alpha5
- 3.0.0alpha4
- 3.0.0alpha3
- 3.0.0alpha2
- 3.0.0alpha1
- 2.2.1
- 2.2.0
- 2.1.1
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.1.1
- 1.1.0
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0rc7
- 1.0.0rc6
- 1.0.0rc5
- 1.0.0rc4
- 1.0.0rc3
- 1.0.0rc2
- 1.0.0rc1
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.1
- 0.2.0
- 0.1.1
- 0.1.0
- dev-renovate/major-laminas
- dev-renovate/lock-file-maintenance
- dev-renovate/phpunit-phpunit-11.x
- dev-extend-error-handling-docs
- dev-rename-body-parsing-middleware-docs-to-body-params-middleware
- dev-add-note-about-usage-of-body-params-middleware-for-put-requests
This package is auto-updated.
Last update: 2024-12-09 05:38:15 UTC
README
Develop PSR-7 middleware applications in minutes!
mezzio builds on laminas-stratigility to provide a minimalist PSR-7 middleware framework for PHP, with the following features:
- Routing. Choose your own router; we support:
- DI Containers, via PSR-11 Container. Middleware matched via routing is retrieved from the composed container.
- Optionally, templating. We support:
Installation
We provide two ways to install Mezzio, both using Composer: via our skeleton project and installer, or manually.
Using the skeleton + installer
The simplest way to install and get started is using the skeleton project, which includes installer scripts for choosing a router, dependency injection container, and optionally a template renderer and/or error handler. The skeleton also provides configuration for officially supported dependencies.
To use the skeleton, use Composer's create-project
command:
composer create-project mezzio/mezzio-skeleton <project dir>
This will prompt you through choosing your dependencies, and then create and
install the project in the <project dir>
(omitting the <project dir>
will
create and install in a mezzio-skeleton/
directory).
Manual Composer installation
You can install Mezzio standalone using Composer:
composer require mezzio/mezzio
However, at this point, Mezzio is not usable, as you need to supply minimally:
- a router.
- a dependency injection container.
We currently support and provide the following routing integrations:
- FastRoute:
composer require mezzio/mezzio-fastroute
- laminas-router:
composer require mezzio/mezzio-laminasrouter
We recommend using a dependency injection container, and typehint against PSR-11 Container. We can recommend the following implementations:
- laminas-servicemanager:
composer require laminas/laminas-servicemanager
- Pimple (see docs for more details):
composer require laminas/laminas-pimple-config
- Aura.Di (see docs for more details):
composer require laminas/laminas-auradi-config
Additionally, you may optionally want to install a template renderer implementation, and/or an error handling integration. These are covered in the documentation.
Documentation
Documentation is in the doc tree, and can be compiled using mkdocs:
mkdocs build
Additionally, public-facing, browseable documentation is available at https://docs.mezzio.dev/mezzio/