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
|
Component provides the *event* and *behavior* features, in addition to the *property* feature which is implemented in
|
||||||
its parent class [[Object]].
|
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,
|
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`:
|
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
|
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.
|
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;
|
use Yii;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component is the base class that provides the *property*, *event* and *behavior* features.
|
|
||||||
*
|
|
||||||
* @include @yii/base/Component.md
|
* @include @yii/base/Component.md
|
||||||
*
|
|
||||||
* @property Behavior[] behaviors list of behaviors currently attached to this component
|
|
||||||
*
|
|
||||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -8,10 +8,7 @@
|
|||||||
namespace yii\base;
|
namespace yii\base;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object is the base class that provides the *property* feature.
|
|
||||||
*
|
|
||||||
* @include @yii/base/Object.md
|
* @include @yii/base/Object.md
|
||||||
*
|
|
||||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user