← Zurück zu den Projekten
Psr15 Middlewares
#PSR-15 Middlewares
Collection of PSR-15 middlewares
#Requirements
- PHP >=7.2
- A PSR-7 http message implementation (Diactoros, Slim, or many more here)
- A PSR-15 middleware dispatcher
#Usage example
use Laminas\Diactoros\ServerRequestFactory; use Middlewares\Utils\Dispatcher; use Middlewares; $dispatcher = new Dispatcher([ //Handle errors (new Middlewares\ErrorHandler()) ->catchExceptions(true), //Log the request new Middlewares\AccessLog($app->get('logger')), //Calculate the response time new Middlewares\ResponseTime(), //Removes the trailing slash new Middlewares\TrailingSlash(false), //Insert the UUID new Middlewares\Uuid(), //Disable the search engine robots new Middlewares\Robots(false), //Compress the response to gzip new Middlewares\GzipEncoder(), //Minify the html new Middlewares\HtmlMinifier(), //Override the method using X-Http-Method-Override header new Middlewares\MethodOverride(), //Parse the json payload new Middlewares\JsonPayload(), //Parse the urlencoded payload new Middlewares\UrlEncodePayload(), //Save the client ip in the '_ip' attribute (new Middlewares\ClientIp()) ->attribute('_ip'), //Allow only some ips (new Middlewares\Firewall(['127.0.0.*'])) ->ipAttribute('_ip'), //Add cache expiration headers new Middlewares\Expires(), //Add the php debugbar new Middlewares\Debugbar(), //Negotiate the content-type new Middlewares\ContentType(), //Negotiate the language new Middlewares\ContentLanguage(['gl', 'es', 'en']), //Handle the routes with fast-route new Middlewares\FastRoute($app->get('dispatcher')), //Create and save a session in '_session' attribute (new Middlewares\AuraSession()) ->attribute('_session'), //Handle the route new Middlewares\RequestHandler(), ]); $response = $dispatcher->dispatch(ServerRequestFactory::fromGlobals());
#List of all available middlewares
#Authentication
#Client info
#Develop utils
#Optimization
#Routers
#Security
#Session
#URLs
#Others
#Links of interest
#Contributing
Use the package repository of each component to notify any issue or pull request related with it, and use this repository for generical questions, new middlewares discussions, etc.
If you want to contribute with new middlewares, you can take a look to these ideas. There's also a skeleton that you can use for quick start.
See CONTRIBUTING for contributing details.
#Logo
Download the logo from the art directory.
The MIT License (MIT). Please see LICENSE for more information.