Class BehaviorCollection
Model behavior collection class.
Defines the Behavior interface, and contains common model interaction functionality.
- ObjectCollection
- BehaviorCollection implements CakeEventListener
Copyright: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
License: MIT License
Location: Cake/Model/BehaviorCollection.php
Properties summary
-
$_mappedMethods
protectedKeeps a list of all methods which have been mapped with regular expressionsarray
-
$_methods
protectedKeeps a list of all methods of attached behaviorsarray
-
$modelName
publicStores a reference to the attached namestring
Inherited Properties
Method Summary
- attach() publicBackwards compatible alias for load()
- detach() publicBackwards compatible alias for unload()
- dispatchMethod() publicDispatches 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.
- implementedEvents() public
Returns the implemented events that will get routed to the trigger function in order to dispatch them separately on each behavior
- init() publicAttaches 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() publicDetaches a behavior from a model
Method Detail
attach()source public
attach( string $behavior , array $config array() )
Backwards compatible alias for load()
Deprecated
3.0.0 Will be removed in 3.0. Replaced with load().Parameters
- string
$behavior
- Behavior name.
- array
$config
optional array() - Configuration options.
detach()source public
detach( string $name )
Backwards compatible alias for unload()
Deprecated
3.0.0 Will be removed in 3.0. Use unload instead.Parameters
- string
$name
- Name of behavior
dispatchMethod()source 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
arrayAll methods for all behaviors attached to this object
hasMethod()source 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
mixedIf $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.
implementedEvents()source public
implementedEvents( )
Returns the implemented events that will get routed to the trigger function in order to dispatch them separately on each behavior
Returns
arrayImplementation of
CakeEventListener::implementedEvents()
init()source public
init( string $modelName , array $behaviors array() )
Attaches a model object and loads a list of behaviors
Parameters
- string
$modelName
- Model name.
- array
$behaviors
optional array() - Behaviors list.
load()source 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
booleanTrue on success, false on failure
Throws
MissingBehaviorException
when a behavior could not be found.
methods()source public
methods( )
Gets the method list for attached behaviors, i.e. all public, non-callback methods. This does not include mappedMethods.
Returns
arrayAll public methods for all behaviors attached to this collection
unload()source public
unload( string $name )
Detaches a behavior from a model
Parameters
- string
$name
- CamelCased name of the behavior to unload
Overrides
ObjectCollection::unload()
Methods inherited from ObjectCollection
__get()source public
__get( string $name )
Provide public read access to the loaded objects
Parameters
- string
$name
- Name of property to read
Returns
mixed__isset()source public
__isset( string $name )
Provide isset access to _loaded
Parameters
- string
$name
- Name of object being checked.
Returns
booleanattached()source public
attached( string $name null )
Gets the list of attached objects, or, whether the given object is attached
Deprecated
3.0.0 Will be removed in 3.0. Use loaded instead.Parameters
- string
$name
optional null Optional. The name of the object to check the status of. If omitted, returns an array of currently-attached objects
Returns
mixedIf $name is specified, returns the boolean status of the corresponding object. Otherwise, returns an array of all attached objects.
disable()source public
disable( string|array $name )
Disables callbacks on an object or array of objects. Public object methods are still callable as normal.
Parameters
- string|array
$name
- CamelCased name of the objects(s) to disable (string or array)
enable()source public
enable( string|array $name , boolean $prioritize true )
Enables callbacks on an object or array of objects
Parameters
- string|array
$name
- CamelCased name of the object(s) to enable (string or array)
- boolean
$prioritize
optional true - Prioritize enabled list after enabling object(s)
enabled()source 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
mixedIf $name is specified, returns the boolean status of the corresponding object. Otherwise, returns an array of all enabled objects.
loaded()source public
loaded( string $name null )
Gets the list of loaded objects, or, whether the given object is loaded
Parameters
- string
$name
optional null Optional. The name of the object to check the status of. If omitted, returns an array of currently-loaded objects
Returns
mixedIf $name is specified, returns the boolean status of the corresponding object. Otherwise, returns an array of all loaded objects.
normalizeObjectArray()source 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
arrayArray of normalized objects.
prioritize()source public
prioritize( )
Prioritize list of enabled object
Returns
arrayPrioritized list of object
set()source public
set( string $name null , CakeObject $object null )
Adds or overwrites an instantiated object to the collection
Parameters
- string
$name
optional null - Name of the object
-
CakeObject
$object
optional null - The object to use
Returns
arrayLoaded objects
setPriority()source public
setPriority( string|array $name , integer|null $priority null )
Set priority for an object or array of objects
Parameters
- string|array
$name
CamelCased name of the object(s) to enable (string or array) If string the second param $priority is used else it should be an associative array with keys as object names and values as priorities to set.
- integer|null
$priority
optional null - Integer priority to set or null for default
trigger()source public
trigger( string|CakeEvent $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|
CakeEvent
$callback
Method to fire on all the objects. Its assumed all the objects implement the method you are calling. If an instance of CakeEvent is provided, then then Event name will parsed to get the callback name. This is done by getting the last word after any dot in the event name (eg.
Model.afterSave
event will trigger theafterSave
callback)- array
$params
optional array() - Array of parameters for the triggered callback.
- array
$options
optional array() - Array of options.
Returns
mixedEither the last result or all results if collectReturn is on.
Throws
CakeException
when modParams is used with an index that does not exist.
Properties detail
$_mappedMethodssource
protected array
Keeps a list of all methods which have been mapped with regular expressions
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-BehaviorCollection.html