This package is abandoned and no longer maintained. The author suggests using the mezzio/mezzio package instead.

PSR-15 Middleware Microframework

3.2.1 2018-11-08 15:30 UTC


Repository abandoned 2019-12-31

This repository has moved to mezzio/mezzio.

Build Status Coverage Status

Develop PSR-7 middleware applications in minutes!

zend-expressive builds on zend-stratigility to provide a minimalist PSR-7 middleware framework for PHP, with the following features:


We provide two ways to install Expressive, 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 zendframework/zend-expressive-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 zend-expressive-skeleton/ directory).

Manual Composer installation

You can install Expressive standalone using Composer:

$ composer require zendframework/zend-expressive

However, at this point, Expressive is not usable, as you need to supply minimally:

  • a router.
  • a dependency injection container.

We currently support and provide the following routing integrations:

  • Aura.Router: composer require zendframework/zend-expressive-aurarouter
  • FastRoute: composer require zendframework/zend-expressive-fastroute
  • zend-router: composer require zendframework/zend-expressive-zendrouter

We recommend using a dependency injection container, and typehint against PSR-11 Container. We can recommend the following implementations:

  • zend-servicemanager: composer require zendframework/zend-servicemanager
  • Pimple (see docs for more details): composer require zendframework/zend-pimple-config
  • Aura.Di (see docs for more details): composer require zendframework/zend-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 is in the doc tree, and can be compiled using mkdocs:

$ mkdocs build

Additionally, public-facing, browseable documentation is available at https://docs.zendframework.com/zend-expressive/