Exemple #1
0
use Psr7Middlewares\Middleware;
use League\Flysystem\Adapter\Local;
use League\Flysystem\Filesystem;
use Cache\Adapter\Filesystem\FilesystemCachePool;
$app = AppFactory::create();
$errorLog = new Logger('error');
$errorLog->pushHandler(new StreamHandler('log/error.log', Logger::DEBUG));
ErrorHandler::register($errorLog);
$accessLog = new Logger('error');
$accessLog->pushHandler(new StreamHandler('log/access.log', Logger::DEBUG));
$filesystemAdapter = new Local('cache/');
$filesystem = new Filesystem($filesystemAdapter);
$pool = new FilesystemCachePool($filesystem);
$app->pipe(Middleware::ClientIp()->remote(false));
// required for AccessLog, Geolocate
$app->pipe(Middleware::AccessLog($accessLog)->combined(true));
$app->pipe(Middleware::TrailingSlash(false)->redirect(301));
$app->pipe(Middleware::FormatNegotiator());
// required for Expires, Minify
//$app->pipe(Middleware::Expires());
//$app->pipe(Middleware::Minify());
$app->pipe(Middleware::BlockSpam());
//$app->pipe(Middleware::PhpSession()->name('DetectorSessionId'));
//$app->pipe(Middleware::Geolocate()->saveInSession(true));
//$app->pipe(Middleware::Cache($pool));
$app->pipe(Middleware::responseTime());
$app->pipeRoutingMiddleware();
$app->pipeDispatchMiddleware();
$cache = new File(array(File::DIR => 'cache/'));
$app->get('/js/features.js', function (RequestInterface $request, ResponseInterface $response, callable $next) use($errorLog, $cache) {
    $response->withAddedHeader('content-type', 'application/x-javascript');