Base class for an individual Component. Components provide reusable bits of controller logic that can be composed into a controller. Components also provide request life-cycle callbacks for injecting logic at specific points.
Components can provide several callbacks that are fired at various stages of the request cycle. The available callbacks are:
initialize()
- Fired before the controller's beforeFilter method.startup()
- Fired after the controller's beforeFilter method.beforeRender()
- Fired before the view + layout are rendered.shutdown()
- Fired after the action is complete and the view has been rendered but before Controller::afterFilter().beforeRedirect()
- Fired before a redirect() is done.$_Collection
protected $_componentMap
protected array
$components
public array
$settings
public array
Called before Controller::redirect(). Allows you to replace the URL that will be redirected to with a new URL. The return of this method can either be an array or a string.
Called before the Controller::beforeRender(), and before the view class is loaded, and before Controller::render()
__construct( ComponentCollection $collection , array $settings array() )
Constructor
ComponentCollection
$collection
$settings
optional array() CakeObject::__construct()
__get( string $name )
Magic method for lazy loading $components.
$name
beforeRedirect( Controller $controller , string|array $url , integer $status null , boolean $exit true )
Called before Controller::redirect(). Allows you to replace the URL that will be redirected to with a new URL. The return of this method can either be an array or a string.
If the return is an array and contains a 'url' key. You may also supply the following:
status
The status code for the redirectexit
Whether or not the redirect should exit.If your response is a string or an array that does not contain a 'url' key it will be used as the new URL to redirect to.
Controller
$controller
$url
$status
optional null $exit
optional true beforeRender( Controller $controller )
Called before the Controller::beforeRender(), and before the view class is loaded, and before Controller::render()
Controller
$controller
initialize( Controller $controller )
Called before the Controller::beforeFilter().
Controller
$controller
shutdown( Controller $controller )
Called after Controller::render() and before the output is printed to the browser.
Controller
$controller
startup( Controller $controller )
Called after the Controller::beforeFilter() and before the controller action
Controller
$controller
_mergeVars( array $properties , string $class , boolean $normalize true )
Merges this objects $property with the property in $class' definition. This classes value for the property will be merged on top of $class'
This provides some of the DRY magic CakePHP provides. If you want to shut it off, redefine this method as an empty function.
$properties
$class
$normalize
optional true _set( array $properties array() )
Allows setting of multiple properties of the object in a single line of code. Will only set properties that are part of a class declaration.
$properties
optional array() _stop( integer|string $status 0 )
Stop execution of the current script. Wraps exit() making testing easier.
$status
optional 0 dispatchMethod( string $method , array $params array() )
Calls a method on this object with the given parameters. Provides an OO wrapper for call_user_func_array
$method
$params
optional array() log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
$msg
$type
optional LOG_ERR $scope
optional null The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes.
requestAction( string|array $url , array $extra array() )
Calls a controller's method from any location. Can be used to connect controllers together or tie plugins into a main application. requestAction can be used to return rendered views or fetch the return value from controller actions.
Under the hood this method uses Router::reverse() to convert the $url parameter into a string URL. You should use URL formats that are compatible with Router::reverse()
POST and GET data can be simulated in requestAction. Use $extra['url']
for GET data. The $extra['data']
parameter allows POST data simulation.
$url
String or array-based URL. Unlike other URL arrays in CakePHP, this URL will not automatically handle passed and named arguments in the $url parameter.
$extra
optional array() if array includes the key "return" it sets the AutoRender to true. Can also be used to submit GET/POST data, and named/passed arguments.
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString( )
CakeObject-to-string conversion. Each class can override this method as necessary.
protected ComponentCollection
Component collection class used to lazy load components.
protected array
A component lookup table used to lazy load component objects.
array()
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.9/class-Component.html