| Package | system.base |
|---|---|
| Inheritance | class CComponent |
| Subclasses | CAccessRule, CAction, CActiveFinder, CApplicationComponent, CAuthAssignment, CAuthItem, CBaseActiveRelation, CBaseController, CBaseUserIdentity, CBehavior, CCacheDependency, CChainedCacheDependency, CConsoleCommand, CConsoleCommandRunner, CDateFormatter, CDbColumnSchema, CDbCommand, CDbCommandBuilder, CDbDataReader, CDbExpression, CDbSchema, CDbTableSchema, CDbTransaction, CEvent, CFilter, CGettextFile, CHttpCookie, CList, CLocale, CLogFilter, CLogRoute, CLogger, CMap, CMemCacheServerConfiguration, CModel, CModule, CNumberFormatter, CPagination, CQueue, CSort, CStack, CTheme, CUploadedFile, CUrlRule, CValidator, CWebService, CWsdlGenerator |
| Since | 1.0 |
| Version | $Id: CComponent.php 1465 2009-10-17 11:06:11Z qiang.xue $ |
$a=$component->text; // equivalent to $a=$component->getText();
$component->text='abc'; // equivalent to $component->setText('abc');
The signatures of getter and setter methods are as follows,
// getter, defines a readable property 'text'
public function getText() { ... }
// setter, defines a writable property 'text' with $value to be set to the property
public function setText($value) { ... }
function eventHandler($event) { ... }
where $event includes parameters associated with the event.
$component->onClick=$callback; // or $component->onClick->add($callback);where $callback refers to a valid PHP callback. Below we show some callback examples:
'handleOnClick' // handleOnClick() is a global function
array($object,'handleOnClick') // using $object->handleOnClick()
array('Page','handleOnClick') // using Page::handleOnClick()
public function onClick($event)
{
$this->raiseEvent('onClick',$event);
}
where $event is an instance of CEvent or its child class.
One can then raise the event by calling the on-method instead of raiseEvent directly.
| 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 |
| 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 |
| 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 |
| getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
| 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 |
|
public mixed __call(string $name, array $parameters)
| ||
| $name | string | the method name |
| $parameters | array | method parameters |
| {return} | mixed | the method return value |
Calls the named method which is not a class method. Do not call this method. This is a PHP magic method that we override to implement the behavior feature.
|
public mixed __get(string $name)
| ||
| $name | string | the property name or event name |
| {return} | mixed | the property value, event handlers attached to the event, or the named behavior (since version 1.0.2) |
Returns a property value, an event handler list or a behavior based on its name. Do not call this method. This is a PHP magic method that we override to allow using the following syntax to read a property or obtain event handlers:
$value=$component->propertyName; $handlers=$component->eventName;
|
public void __isset(string $name)
| ||
| $name | string | the property name or the event name |
Checks if a property value is null. Do not call this method. This is a PHP magic method that we override to allow using isset() to detect if a component property is set or not.
|
public void __set(string $name, mixed $value)
| ||
| $name | string | the property name or the event name |
| $value | mixed | the property value or callback |
Sets value of a component property. Do not call this method. This is a PHP magic method that we override to allow using the following syntax to set a property or attach an event handler
$this->propertyName=$value; $this->eventName=$callback;
|
public void __unset(string $name)
| ||
| $name | string | the property name or the event name |
Sets a component property to be null. Do not call this method. This is a PHP magic method that we override to allow using unset() to set a component property to be null.
|
public IBehavior asa(string $behavior)
| ||
| $behavior | string | the behavior name |
| {return} | IBehavior | the behavior object, or null if the behavior does not exist |
Returns the named behavior object. The name 'asa' stands for 'as a'.
|
public IBehavior attachBehavior(string $name, mixed $behavior)
| ||
| $name | string | the behavior's name. It should uniquely identify this behavior. |
| $behavior | mixed | the behavior configuration. This is passed as the first parameter to YiiBase::createComponent to create the behavior object. |
| {return} | IBehavior | the behavior object |
Attaches a behavior to this component. This method will create the behavior object based on the given configuration. After that, the behavior object will be initialized by calling its IBehavior::attach method.
|
public void attachBehaviors(array $behaviors)
| ||
| $behaviors | array | list of behaviors to be attached to the component |
Attaches a list of behaviors to the component. Each behavior is indexed by its name and should be an instance of IBehavior, a string specifying the behavior class, or an array of the following structure:
array(
'class'=>'path.to.BehaviorClass',
'property1'=>'value1',
'property2'=>'value2',
)
|
public void attachEventHandler(string $name, callback $handler)
| ||
| $name | string | the event name |
| $handler | callback | the event handler |
Attaches an event handler to an event.
An event handler must be a valid PHP callback, i.e., a string referring to
a global function name, or an array containing two elements with
the first element being an object and the second element a method name
of the object.
An event handler must be defined with the following signature,
function handlerName($event) {}
where $event includes parameters associated with the event.
$component->getEventHandlers($eventName)->add($eventHandler);
$component->getEventHandlers($eventName)->insertAt(0,$eventHandler);makes the handler to be invoked first.
|
public boolean canGetProperty(string $name)
| ||
| $name | string | the property name |
| {return} | boolean | whether the property can be read |
Determines whether a property can be read. A property can be read if the class has a getter method for the property name. Note, property name is case-insensitive.
|
public boolean canSetProperty(string $name)
| ||
| $name | string | the property name |
| {return} | boolean | whether the property can be written |
Determines whether a property can be set. A property can be written if the class has a setter method for the property name. Note, property name is case-insensitive.
|
public IBehavior detachBehavior(string $name)
| ||
| $name | string | the behavior's name. It uniquely identifies the behavior. |
| {return} | IBehavior | the detached behavior. Null if the behavior does not exist. |
Detaches a behavior from the component. The behavior's IBehavior::detach method will be invoked.
|
public void detachBehaviors()
|
Detaches all behaviors from the component.
|
public boolean detachEventHandler(string $name, callback $handler)
| ||
| $name | string | event name |
| $handler | callback | the event handler to be removed |
| {return} | boolean | if the detachment process is successful |
Detaches an existing event handler. This method is the opposite of attachEventHandler.
|
public void disableBehavior(string $name)
| ||
| $name | string | the behavior's name. It uniquely identifies the behavior. |
Disables an attached behavior. A behavior is only effective when it is enabled.
|
public void disableBehaviors()
|
Disables all behaviors attached to this component.
|
public void enableBehavior(string $name)
| ||
| $name | string | the behavior's name. It uniquely identifies the behavior. |
Enables an attached behavior. A behavior is only effective when it is enabled. A behavior is enabled when first attached.
|
public void enableBehaviors()
|
Enables all behaviors attached to this component.
|
public CList getEventHandlers(string $name)
| ||
| $name | string | the event name |
| {return} | CList | list of attached event handlers for the event |
Returns the list of attached event handlers for an event.
|
public boolean hasEvent(string $name)
| ||
| $name | string | the event name |
| {return} | boolean | whether an event is defined |
Determines whether an event is defined. An event is defined if the class has a method named like 'onXXX'. Note, event name is case-insensitive.
|
public boolean hasEventHandler(string $name)
| ||
| $name | string | the event name |
| {return} | boolean | whether an event has been attached one or several handlers |
Checks whether the named event has attached handlers.
|
public boolean hasProperty(string $name)
| ||
| $name | string | the property name |
| {return} | boolean | whether the property is defined |
Determines whether a property is defined. A property is defined if there is a getter or setter method defined in the class. Note, property names are case-insensitive.
|
public void raiseEvent(string $name, CEvent $event)
| ||
| $name | string | the event name |
| $event | CEvent | the event parameter |
Raises an event. This method represents the happening of an event. It invokes all attached handlers for the event.
Be the first person to leave a comment
Please login to leave your comment.