/** * @dataProvider formatsProvider */ public function testTypes($url, $accept, $format) { $response = $this->execute([Middleware::FormatNegotiator(), function ($request, $response, $next) { $response->getBody()->write($request->getAttribute('FORMAT')); return $response; }], $url, ['Accept' => $accept]); $this->assertEquals($format, (string) $response->getBody()); }
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'); $response->getBody()->write(Modernizr::buildJs()); $detector = new Detector($cache, $errorLog);