Cross-framework module for slim framework

1.0.x-dev 2017-01-05 21:24 UTC

This package is auto-updated.

Last update: 2021-04-06 16:27:30 UTC


Build Status Coverage Status

Slim framework universal module

This package integrates the Slim framework (v3) in any container-interop/service-provider compatible framework/container.


composer require thecodingmachine/slim-universal-module

Once installed, you need to register the TheCodingMachine\SlimServiceProvider into your container.

If your container supports Puli integration, you have nothing to do. Otherwise, refer to your framework or container's documentation to learn how to register service providers.


This service provider is meant to create a base Slim/App instance. You can later play with this instance to add routes, etc...

Expected values / services

This service provider expects the following configuration / services to be available:

Name Compulsory Description
settings no The Slim settings (see Slim documentation about settings for more details)

Provided services

Note: Sadly, Slim uses containers as service locators instead of dependency injection containers. This means that the name of the instances is dictated by Slim. The names could collide with some of your services! Be wary of this!

This service provider provides the following services:

Service name Description
App::class The Slim app
settings The Slim default settings
environment Instance of \Slim\Interfaces\Http\EnvironmentInterface.
request Instance of \Psr\Http\Message\ServerRequestInterface.
response Instance of \Psr\Http\Message\ResponseInterface.
router Instance of \Slim\Interfaces\RouterInterface.
foundHandler Instance of \Slim\Interfaces\InvocationStrategyInterface.
phpErrorHandler Callable invoked if a PHP 7 Error is thrown. See Slim doc
errorHandler Callable invoked if an Exception is thrown. See Slim doc
notFoundHandler Callable invoked if the current HTTP request URI does not match an application route. See Slim doc
notAllowedHandler Callable invoked if an application route matches the current HTTP request path but not its method. See Slim doc
callableResolver Instance of \Slim\Interfaces\CallableResolverInterface.

Extended services

This service provider registers the Slim\App in the MiddlewareListServiceProvider::MIDDLEWARES_QUEUE.

Service name Description
MiddlewareListServiceProvider::MIDDLEWARES_QUEUE Adds the Slim app to this queue (to be used by external routers)