*/ final class AuthenticationPlugin implements Plugin { /** * @var Authentication An authentication system */ private $authentication; public function __construct(Authentication $authentication) { $this->authentication = $authentication; } /** * {@inheritdoc} */ public function handleRequest(RequestInterface $request, callable $next, callable $first): Promise { $request = $this->authentication->authenticate($request); return $next($request); } }