Class ControllerFactory
Factory method for building controllers for request.
Namespace: Cake\Controller
Property Summary
-
$container protected
Cake\Core\ContainerInterface
Method Summary
-
__construct() public
Constructor
-
create() public
Create a controller for a given request.
-
getControllerClass() public
Determine the controller class name based on current request and controller param
-
invoke() public
Invoke a controller's action and wrapping methods.
-
missingController() protected
Throws an exception when a controller is missing.
Method Detail
__construct() ¶ public
__construct(Cake\Core\ContainerInterface $container)
Constructor
Parameters
-
Cake\Core\ContainerInterface
$container The container to build controllers with.
create() ¶ public
create(Psr\Http\Message\ServerRequestInterface $request): Cake\Controller\Controller
Create a controller for a given request.
Parameters
-
Psr\Http\Message\ServerRequestInterface
$request The request to build a controller for.
Returns
Cake\Controller\Controller
Throws
Cake\Http\Exception\MissingControllerException
getControllerClass() ¶ public
getControllerClass(Cake\Http\ServerRequest $request): string|null
Determine the controller class name based on current request and controller param
Parameters
-
Cake\Http\ServerRequest
$request The request to build a controller for.
Returns
string|null
invoke() ¶ public
invoke(mixed $controller): Psr\Http\Message\ResponseInterface
Invoke a controller's action and wrapping methods.
Parameters
-
mixed
$controller The controller to invoke.
Returns
Psr\Http\Message\ResponseInterface
Throws
Cake\Controller\Exception\MissingActionException
If controller action is not found.
UnexpectedValueException
If return value of action method is not null or ResponseInterface instance.
missingController() ¶ protected
missingController(Cake\Http\ServerRequest $request): Cake\Http\Exception\MissingControllerException
Throws an exception when a controller is missing.
Parameters
-
Cake\Http\ServerRequest
$request The request.
Returns
Cake\Http\Exception\MissingControllerException