On this page
Class Component
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.
Life cycle callbacks
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.
- CakeObject
- Component 
Direct Subclasses
- AclComponent
- AuthComponent
- CookieComponent
- EmailComponent
- FlashComponent
- PaginatorComponent
- RequestHandlerComponent
- SecurityComponent
- SessionComponent
Link: https://book.cakephp.org/2.0/en/controllers/components.html
See: Controller::$components
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Controller/Component.php
Properties summary
- 
    Component collection class used to lazy load components.$_Collectionprotected
- 
    $_componentMapprotectedA component lookup table used to lazy load component objects.array
- 
    $componentspublicOther Components this component uses.array
- 
    $settingspublicSettings for this Componentarray
Method Summary
- 
    __construct() publicConstructor
- 
    __get() publicMagic method for lazy loading $components.
- 
    beforeRedirect() publicCalled 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. 
- 
    beforeRender() publicCalled before the Controller::beforeRender(), and before the view class is loaded, and before Controller::render() 
- 
    initialize() publicCalled before the Controller::beforeFilter().
- 
    shutdown() publicCalled after Controller::render() and before the output is printed to the browser.
- 
    startup() publicCalled after the Controller::beforeFilter() and before the controller action
Method Detail
__construct()source public
__construct( ComponentCollection $collection , array $settings array() )Constructor
Parameters
- ComponentCollection- $collection
- A ComponentCollection this component can use to lazy load its components
- 
     array $settingsoptional array()
- Array of configuration settings.
Overrides
CakeObject::__construct()
  __get()source public
__get( string $name )Magic method for lazy loading $components.
Parameters
- 
     string $name
- Name of component to get.
Returns
mixedA Component object or null.
beforeRedirect()source public
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:
- statusThe status code for the redirect
- exitWhether 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.
Parameters
- Controller- $controller
- Controller with components to beforeRedirect
- 
     string|array $url
- Either the string or URL array that is being redirected to.
- 
     integer $statusoptional null
- The status code of the redirect
- 
     boolean $exitoptional true
- Will the script exit.
Returns
array|nullEither an array or null.
Link
https://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRedirectbeforeRender()source public
beforeRender( Controller $controller )Called before the Controller::beforeRender(), and before the view class is loaded, and before Controller::render()
Parameters
- Controller- $controller
- Controller with components to beforeRender
Link
https://book.cakephp.org/2.0/en/controllers/components.html#Component::beforeRenderinitialize()source public
initialize( Controller $controller )Called before the Controller::beforeFilter().
Parameters
- Controller- $controller
- Controller with components to initialize
Link
https://book.cakephp.org/2.0/en/controllers/components.html#Component::initializeshutdown()source public
shutdown( Controller $controller )Called after Controller::render() and before the output is printed to the browser.
Parameters
- Controller- $controller
- Controller with components to shutdown
Link
https://book.cakephp.org/2.0/en/controllers/components.html#Component::shutdownstartup()source public
startup( Controller $controller )Called after the Controller::beforeFilter() and before the controller action
Parameters
- Controller- $controller
- Controller with components to startup
Link
https://book.cakephp.org/2.0/en/controllers/components.html#Component::startupMethods inherited from CakeObject
_mergeVars()source protected
_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.
Parameters
- 
     array $properties
- The name of the properties to merge.
- 
     string $class
- The class to merge the property with.
- 
     boolean $normalizeoptional true
- Set to true to run the properties through Hash::normalize() before merging.
_set()source protected
_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.
Parameters
- 
     array $propertiesoptional array()
- An associative array containing properties and corresponding values.
_stop()source protected
_stop( integer|string $status 0 )Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- 
     integer|string $statusoptional 0
- see http://php.net/exit for values
dispatchMethod()source public
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
Parameters
- 
     string $method
- Name of the method to call
- 
     array $paramsoptional array()
- Parameter list to use when calling $method
Returns
mixedReturns the result of the method call
log()source public
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.
Parameters
- 
     string $msg
- Log message
- 
     integer $typeoptional LOG_ERR
- Error type constant. Defined in app/Config/core.php.
- 
     null|string|array $scopeoptional null
- 
     The scope(s) a log message is being created in. See CakeLog::config() for more information on logging scopes. 
Returns
booleanSuccess of log write
requestAction()source public
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()
Passing POST and GET data
POST and GET data can be simulated in requestAction. Use $extra['url'] for GET data. The $extra['data'] parameter allows POST data simulation.
Parameters
- 
     string|array $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. 
- 
     array $extraoptional 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. 
Returns
mixedBoolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString()source public
toString( )CakeObject-to-string conversion. Each class can override this method as necessary.
Returns
stringThe name of this class
Properties detail
$_Collectionsource
protected ComponentCollection
Component collection class used to lazy load components.
$_componentMapsource
protected array
A component lookup table used to lazy load component objects.
array()© 2005–2017 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.10/class-Component.html