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.
- Object
 - 
			
Component			
			
			
		 
Direct Subclasses
Link: http://book.cakephp.org/view/993/Components
See: Controller::$components
Copyright: Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: Cake/Controller/Component.php
Properties summary
- 
			
$_CollectionprotectedComponent collection class used to lazy load components. - 
			
$_componentMapprotectedarrayA component lookup table used to lazy load component objects. - 
			
$componentspublicarrayOther Components this component uses. - 
			
$settingspublicarraySettings for this Component 
Method Summary
- 
			
__construct() public
Constructor - 
			
__get() public
Magic method for lazy loading $components. - 
			
beforeRedirect() public
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.
 - 
			
beforeRender() public
Called after the Controller::beforeRender(), after the view class is loaded, and before the Controller::render()
 - 
			
initialize() public
Called before the Controller::beforeFilter(). - 
			
shutdown() public
Called after Controller::render() and before the output is printed to the browser. - 
			
startup() public
Called after the Controller::beforeFilter() and before the controller action 
Method Detail
__construct() public ¶
__construct( ComponentCollection $collection , array $settings = array() )
		
Constructor
Parameters
- 
						
ComponentCollection$collection - A ComponentCollection this component can use to lazy load its components
 - array $settings optional array()
 - Array of configuration settings.
 
Overrides
__get() public ¶
__get( string $name )
Magic method for lazy loading $components.
Parameters
- string $name
 - Name of component to get.
 
Returns
A Component object or null.
beforeRedirect() 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 redirectexitWhether 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 $status optional null
 - The status code of the redirect
 - boolean $exit optional true
 - Will the script exit.
 
Returns
Either an array or null.
Link
beforeRender() public ¶
beforeRender( Controller $controller )
		
Called after the Controller::beforeRender(), after the view class is loaded, and before the Controller::render()
Parameters
- 
						
Controller$controller - Controller with components to beforeRender
 
Link
initialize() public ¶
initialize( Controller $controller )
		
Called before the Controller::beforeFilter().
Parameters
- 
						
Controller$controller - Controller with components to initialize
 
Link
shutdown() 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
startup() public ¶
startup( Controller $controller )
		
Called after the Controller::beforeFilter() and before the controller action
Parameters
- 
						
Controller$controller - Controller with components to startup
 
Link
Methods inherited from Object
_mergeVars() 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 $normalize optional true
 - Set to true to run the properties through Set::normalize() before merging.
 
_set() 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 $properties optional array()
 - An associative array containing properties and corresponding values.
 
_stop() protected ¶
_stop( integer|string $status = 0 )
Stop execution of the current script. Wraps exit() making testing easier.
Parameters
- integer|string $status optional 0
 - see http://php.net/exit for values
 
dispatchMethod() 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 $params optional array()
 - Parameter list to use when calling $method
 
Returns
Returns the result of the method call
log() public ¶
log( string $msg , integer $type = LOG_ERROR )
Convenience method to write a message to CakeLog. See CakeLog::write() for more information on writing to logs.
Parameters
- string $msg
 - Log message
 - integer $type optional LOG_ERROR
 - Error type constant. Defined in app/Config/core.php.
 
Returns
Success of log write
requestAction() public ¶
requestAction( mixed $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
- mixed $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 $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.
Returns
Boolean true or false on success/failure, or contents of rendered action if 'return' is set in $extra.
toString() public ¶
toString( )
Object-to-string conversion. Each class can override this method as necessary.
Returns
The name of this class
Properties detail
$_Collection ¶
ComponentCollection
		Component collection class used to lazy load components.
$_componentMap ¶
A component lookup table used to lazy load component objects.
array()