mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-30 22:48:19 +08:00
improved doc.
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
Component is the base class that implements the *property*, *event* and *behavior* features.
|
||||
|
||||
Component provides the *event* and *behavior* features, in addition to the *property* feature which is implemented in
|
||||
its parent class [[Object]].
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
Object is the base class that implements the *property* feature.
|
||||
|
||||
A property is defined by a getter method (e.g. `getLabel`), and/or a setter method (e.g. `setLabel`). For example,
|
||||
the following getter and setter methods define a property named `label`:
|
||||
|
||||
@@ -30,4 +32,30 @@ $object->label = 'abc';
|
||||
If a property has only a getter method and has no setter method, it is considered as *read-only*. In this case, trying
|
||||
to modify the property value will cause an exception.
|
||||
|
||||
One can call [[hasProperty]], [[canGetProperty]] and/or [[canSetProperty]] to check the existence of a property.
|
||||
One can call [[hasProperty()]], [[canGetProperty()]] and/or [[canSetProperty()]] to check the existence of a property.
|
||||
|
||||
|
||||
Besides the property feature, Object also introduces an important object initialization life cycle. In particular,
|
||||
creating an new instance of Object or its derived class will involve the following life cycles sequentially:
|
||||
|
||||
1. the class constructor is invoked;
|
||||
2. object properties are initialized according to the given configuration;
|
||||
3. the `init()` method is invoked.
|
||||
|
||||
In the above, both Step 2 and 3 occur at the end of the class constructor. It is recommended that
|
||||
you perform object initialization in the `init()` method because at that stage, the object configuration
|
||||
is already applied.
|
||||
|
||||
In order to ensure the above life cycles, if a child class of Object needs to override the constructor,
|
||||
it should be done like the following:
|
||||
|
||||
~~~
|
||||
public function __construct($param1, $param2, ..., $config = array())
|
||||
{
|
||||
...
|
||||
parent::__construct($config);
|
||||
}
|
||||
~~~
|
||||
|
||||
That is, a `$config` parameter (defaults to `array()`) should be declared as the last parameter
|
||||
of the constructor, and the parent implementation should be called at the end of the constructor.
|
||||
|
||||
@@ -10,12 +10,7 @@ namespace yii\base;
|
||||
use Yii;
|
||||
|
||||
/**
|
||||
* Component is the base class that provides the *property*, *event* and *behavior* features.
|
||||
*
|
||||
* @include @yii/base/Component.md
|
||||
*
|
||||
* @property Behavior[] behaviors list of behaviors currently attached to this component
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @since 2.0
|
||||
*/
|
||||
|
||||
@@ -8,10 +8,7 @@
|
||||
namespace yii\base;
|
||||
|
||||
/**
|
||||
* Object is the base class that provides the *property* feature.
|
||||
*
|
||||
* @include @yii/base/Object.md
|
||||
*
|
||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||
* @since 2.0
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user