Class BehaviorCollection
Model behavior collection class.
Defines the Behavior interface, and contains common model interaction functionality.
- ObjectCollection
- BehaviorCollection
Copyright: Copyright 2005-2011, Cake Software Foundation, Inc. (http://cakefoundation.org)
License: License (http://www.opensource.org/licenses/mit-license.php)
Location: Cake/Model/BehaviorCollection.php
Properties summary
-
$_mappedMethods
protectedarray
Keeps a list of all methods which have been mapped with regular expressions -
$_methods
protectedarray
Keeps a list of all methods of attached behaviors -
$modelName
publicstring
Stores a reference to the attached name
Method Summary
-
attach() public deprecated
Backwards compatible alias for load() -
detach() public deprecated
Backwards compatible alias for unload() -
dispatchMethod() public
Dispatches a behavior method. Will call either normal methods or mapped methods. -
hasMethod() public
Check to see if a behavior in this collection implements the provided method. Will also check mappedMethods.
-
init() public
Attaches a model object and loads a list of behaviors -
load() public
Loads a behavior into the collection. You can use use
$config['enabled'] = false
to load a behavior with callbacks disabled. By default callbacks are enabled. Disable behaviors can still be used as normal. -
methods() public
Gets the method list for attached behaviors, i.e. all public, non-callback methods. This does not include mappedMethods.
-
unload() public
Detaches a behavior from a model
Method Detail
attach() public deprecated ¶
attach( string $behavior , array $config = array() )
Backwards compatible alias for load()
Deprecated
Parameters
- string $behavior
- array $config optional array()
detach() public deprecated ¶
detach( string $name )
Backwards compatible alias for unload()
Deprecated
Parameters
- string $name
- Name of behavior
dispatchMethod() public ¶
dispatchMethod( Model
$model , string $method , array $params = array() , boolean $strict = false )
Dispatches a behavior method. Will call either normal methods or mapped methods.
If a method is not handled by the BehaviorCollection, and $strict is false, a
special return of array('unhandled')
will be returned to signal the method was not found.
Parameters
-
Model
$model - The model the method was originally called on.
- string $method
- The method called.
- array $params optional array()
- Parameters for the called method.
- boolean $strict optional false
- If methods are not found, trigger an error.
Returns
All methods for all behaviors attached to this object
hasMethod() public ¶
hasMethod( string $method , boolean $callback = false )
Check to see if a behavior in this collection implements the provided method. Will also check mappedMethods.
Parameters
- string $method
- The method to find.
- boolean $callback optional false
- Return the callback for the method.
Returns
If $callback is false, a boolean will be returned, if its true, an array containing callback information will be returned. For mapped methods the array will have 3 elements.
init() public ¶
init( string $modelName , array $behaviors = array() )
Attaches a model object and loads a list of behaviors
Parameters
- string $modelName
- array $behaviors optional array()
load() public ¶
load( string $behavior , array $config = array() )
Loads a behavior into the collection. You can use use $config['enabled'] = false
to load a behavior with callbacks disabled. By default callbacks are enabled. Disable behaviors
can still be used as normal.
You can alias your behavior as an existing behavior by setting the 'className' key, i.e.,
{{{
public $actsAs = array(
'Tree' => array(
'className' => 'AliasedTree'
);
);
}}}
All calls to the Tree
behavior would use AliasedTree
instead.
Parameters
- string $behavior
- CamelCased name of the behavior to load
- array $config optional array()
- Behavior configuration parameters
Returns
True on success, false on failure
Throws
methods() public ¶
methods( )
Gets the method list for attached behaviors, i.e. all public, non-callback methods. This does not include mappedMethods.
Returns
All public methods for all behaviors attached to this collection
Methods inherited from ObjectCollection
__get() public ¶
__get( string $name )
Provide public read access to the loaded objects
Parameters
- string $name
- Name of property to read
Returns
__isset() public ¶
__isset( string $name )
Provide isset access to _loaded
Parameters
- string $name
- Name of object being checked.
Returns
attached() public ¶
attached( string $name = null )
Gets the list of attached behaviors, or, whether the given behavior is attached
Parameters
- string $name optional null
Optional. The name of the behavior to check the status of. If omitted, returns an array of currently-attached behaviors
Returns
If $name is specified, returns the boolean status of the corresponding behavior. Otherwise, returns an array of all attached behaviors.
disable() public ¶
disable( mixed $name )
Disables callbacks on a object or array of objects. Public object methods are still callable as normal.
Parameters
- mixed $name
- CamelCased name of the objects(s) to disable (string or array)
enable() public ¶
enable( mixed $name )
Enables callbacks on an object or array of objects
Parameters
- mixed $name
- CamelCased name of the object(s) to enable (string or array)
enabled() public ¶
enabled( string $name = null )
Gets the list of currently-enabled objects, or, the current status of a single objects
Parameters
- string $name optional null
Optional. The name of the object to check the status of. If omitted, returns an array of currently-enabled object
Returns
If $name is specified, returns the boolean status of the corresponding object. Otherwise, returns an array of all enabled objects.
normalizeObjectArray() public static ¶
normalizeObjectArray( array $objects )
Normalizes an object array, creates an array that makes lazy loading easier
Parameters
- array $objects
- Array of child objects to normalize.
Returns
Array of normalized objects.
set() public ¶
set( string $name = null , Object
$object = null )
Adds or overwrites an instantiated object to the collection
Parameters
- string $name optional null
- Name of the object
-
Object
$object optional null - The object to use
Returns
Loaded objects
trigger() public ¶
trigger( string $callback , array $params = array() , array $options = array() )
Trigger a callback method on every object in the collection. Used to trigger methods on objects in the collection. Will fire the methods in the order they were attached.
Options
breakOn
Set to the value or values you want the callback propagation to stop on. Can either be a scalar value, or an array of values to break on. Defaults tofalse
.break
Set to true to enabled breaking. When a trigger is broken, the last returned value will be returned. If used in combination withcollectReturn
the collected results will be returned. Defaults tofalse
.collectReturn
Set to true to collect the return of each object into an array. This array of return values will be returned from the trigger() call. Defaults tofalse
.modParams
Allows each object the callback gets called on to modify the parameters to the next object. Setting modParams to an integer value will allow you to modify the parameter with that index. Any non-null value will modify the parameter index indicated. Defaults to false.
Parameters
- string $callback
Method to fire on all the objects. Its assumed all the objects implement the method you are calling.
- array $params optional array()
- Array of parameters for the triggered callback.
- array $options optional array()
- Array of options.
Returns
Either the last result or all results if collectReturn is on.
Throws
Properties detail
$_mappedMethods ¶
Keeps a list of all methods which have been mapped with regular expressions
array()