filters = $filters; } /** * Assign a list of request filters * * @param RequestFilter[] $filters * @return $this */ public function setFilters($filters) { $this->filters = $filters; return $this; } /** * @inheritdoc */ public function process(HTTPRequest $request, callable $delegate) { if ($this->filters) { Deprecation::notice( '5.0', 'Deprecated RequestFilters are in use. Apply HTTPMiddleware to Director.middlewares instead.' ); } foreach ($this->filters as $filter) { $res = $filter->preRequest($request); if ($res === false) { return new HTTPResponse(_t(__CLASS__ . '.INVALID_REQUEST', 'Invalid request'), 400); } } $response = $delegate($request); foreach ($this->filters as $filter) { $res = $filter->postRequest($request, $response); if ($res === false) { return new HTTPResponse(_t(__CLASS__ . '.REQUEST_ABORTED', 'Request aborted'), 500); } } return $response; } }