CBehavior
包 | system.base |
---|---|
继承 | class CBehavior » CComponent |
实现 | IBehavior |
子类 | CConsoleCommandBehavior, CModelBehavior |
源码 | framework/base/CBehavior.php |
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
enabled | boolean | 行为是否被启用。 | CBehavior |
owner | CComponent | 此行为被连接到该所有者的组件。 | CBehavior |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__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() | 对组件附加行为对象。 | 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() | 从组件中分离行为对象。 | 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() | 声明事件和相应事件的处理方法。 | CBehavior |
getEnabled() | Returns 行为是否被启用。 | CBehavior |
getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
getOwner() | Returns 此行为被连接到该所有者的组件。 | 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 行为是否被启用。 | CBehavior |
属性详情
行为是否被启用。
此行为被连接到该所有者的组件。
方法详情
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();
}
对组件附加行为对象。 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;
}
从组件中分离行为对象。 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). |
声明事件和相应事件的处理方法。 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 | 行为是否被启用。 |
public CComponent getOwner()
| ||
{return} | CComponent | 此行为被连接到该所有者的组件。 |
public void setEnabled(boolean $value)
| ||
$value | boolean | 行为是否被启用。 |
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;
}