gnusocial.rocks/soc/2020/daily_report/archive/app/src/Bootstrap/MiddlewareManager.php

54 lines
1.1 KiB
PHP

<?php
namespace App\Bootstrap;
use App\Middlewares;
use DI\Container;
use Middlewares as HttpMiddlewares;
use Slim\App;
use Tightenco\Collect\Support\Collection;
class MiddlewareManager
{
/** @const Array of application middlewares */
protected const MIDDLEWARES = [
Middlewares\WhoopsMiddleware::class
];
/** @var App The application */
protected $app;
/** @var Container The application container */
protected $container;
/**
* Create a new MiddlwareManager object.
*
* @param \Slim\App $app
* @param \DI\Container $container
*/
public function __construct(App $app, Container $container)
{
$this->app = $app;
$this->container = $container;
}
/**
* Register application middlewares.
*
* @return void
*/
public function __invoke()
{
Collection::make(self::MIDDLEWARES)->each(
function (string $middleware): void {
$this->app->add($middleware);
}
);
$this->app->add(new HttpMiddlewares\Expires(
$this->container->get('http_expires')
));
}
}