Package | system.base |
---|---|
Inheritance | class CBehavior » CComponent |
Implements | IBehavior |
Subclasses | CConsoleCommandBehavior, CModelBehavior |
Source Code | framework/base/CBehavior.php |
Property | Type | Description | Defined By |
---|---|---|---|
enabled | boolean | whether this behavior is enabled | CBehavior |
owner | CComponent | the owner component that this behavior is attached to. | CBehavior |
Method | Description | Defined By |
---|---|---|
__call() | Calls the named method which is not a class method. | CComponent |
__get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
__isset() | Checks if a property value is null. | CComponent |
__set() | Sets value of a component property. | CComponent |
__unset() | Sets a component property to be null. | CComponent |
asa() | Returns the named behavior object. | CComponent |
attach() | Attaches the behavior object to the component. | CBehavior |
attachBehavior() | Attaches a behavior to this component. | CComponent |
attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
attachEventHandler() | Attaches an event handler to an event. | CComponent |
canGetProperty() | Determines whether a property can be read. | CComponent |
canSetProperty() | Determines whether a property can be set. | CComponent |
detach() | Detaches the behavior object from the component. | CBehavior |
detachBehavior() | Detaches a behavior from the component. | CComponent |
detachBehaviors() | Detaches all behaviors from the component. | CComponent |
detachEventHandler() | Detaches an existing event handler. | CComponent |
disableBehavior() | Disables an attached behavior. | CComponent |
disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
enableBehavior() | Enables an attached behavior. | CComponent |
enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
events() | Declares events and the corresponding event handler methods. | CBehavior |
getEnabled() | Returns whether this behavior is enabled | CBehavior |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getOwner() | Returns the owner component that this behavior is attached to. | CBehavior |
hasEvent() | Determines whether an event is defined. | CComponent |
hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
hasProperty() | Determines whether a property is defined. | CComponent |
raiseEvent() | Raises an event. | CComponent |
setEnabled() | Sets whether this behavior is enabled | CBehavior |
whether this behavior is enabled
the owner component that this behavior is attached to.
public void attach(CComponent $owner)
| ||
$owner | CComponent | the component that this behavior is to be attached to. |
public function attach($owner)
{
$this->_enabled=true;
$this->_owner=$owner;
$this->_attachEventHandlers();
}
Attaches the behavior object to the component. The default implementation will set the owner property and attach event handlers as declared in events. This method will also set enabled to true. Make sure you've declared handler as public and call the parent implementation if you override this method.
public void detach(CComponent $owner)
| ||
$owner | CComponent | the component that this behavior is to be detached from. |
public function detach($owner)
{
foreach($this->events() as $event=>$handler)
$owner->detachEventHandler($event,array($this,$handler));
$this->_owner=null;
$this->_enabled=false;
}
Detaches the behavior object from the component. The default implementation will unset the owner property and detach event handlers declared in events. This method will also set enabled to false. Make sure you call the parent implementation if you override this method.
public array events()
| ||
{return} | array | events (array keys) and the corresponding event handler methods (array values). |
Declares events and the corresponding event handler methods. The events are defined by the owner component, while the handler methods by the behavior class. The handlers will be attached to the corresponding events when the behavior is attached to the owner component; and they will be detached from the events when the behavior is detached from the component. Make sure you've declared handler method as public.
public boolean getEnabled()
| ||
{return} | boolean | whether this behavior is enabled |
public function getEnabled()
{
return $this->_enabled;
}
public CComponent getOwner()
| ||
{return} | CComponent | the owner component that this behavior is attached to. |
public function getOwner()
{
return $this->_owner;
}
public void setEnabled(boolean $value)
| ||
$value | boolean | whether this behavior is enabled |
public function setEnabled($value)
{
$value=(bool)$value;
if($this->_enabled!=$value && $this->_owner)
{
if($value)
$this->_attachEventHandlers();
else
{
foreach($this->events() as $event=>$handler)
$this->_owner->detachEventHandler($event,array($this,$handler));
}
}
$this->_enabled=$value;
}
Signup or Login in order to comment.