polish the words based on feedback.

parent d5b9f970
......@@ -22,19 +22,19 @@ echo DatePicker::widget([
]);
```
正因为这个小部件继承自 [[yii\base\Component]],所以它的各项属性改写起来就显得 So easy……
正因为这个小部件继承自 [[yii\base\Component]],所以它的各项属性改写起来就会很容易……
虽然组件非常屌爆,但是他们比常规的对象(Object)要稍微重量级一丢丢,因为他们要使用额外的内存和 CPU 时间来支持这些功能,尤其是
虽然组件非常屌爆,但是他们比常规的对象(Object)要稍微重量级一点点,因为他们要使用额外的内存和 CPU 时间来支持这些功能,尤其是
[事件](concept-events.md)[行为](concept-behaviors.md) 这俩货。如果你的组件不需要这两项功能,你可以考虑继承 [[yii\base\Object]]
而不是 [[yii\base\Component]]。这样一来,你的组件就可以像普通 PHP 对象一样高效了。同时,它还依旧支持[属性(Property)](concept-properties.md)功能!
当你继承 [[yii\base\Component]] 或 [[yii\base\Object]] 时,我们推(xue2)荐(zhe)你(dian3er)使用如下的编码风格:
当你继承 [[yii\base\Component]] 或 [[yii\base\Object]] 时,我们推荐你使用如下的编码风格:
- 若你需要重写构造器(Constructor),指定一个 `$config` 参数,作为构造器的 *最后一个* 参数,然后把它传递给父类的构造器。(译者注:`parent::__construct($config = [])`,用于把属性配置信息传递会父类。可选参数放最后是 PSR 规范之一)
- 若你需要重写构造器(Constructor),指定一个 `$config` 参数,作为构造器的 *最后一个* 参数,然后把它传递给父类的构造器。(译者注:`parent::__construct($config = [])`,用于把属性配置信息传递回父类。可选参数放最后是 PSR 的规范之一)
- 永远在你重写的构造器 *结尾处* 调用一下父类的构造器。
- 如果你重写了 [[yii\base\Object::init()]] 方法,请确保你在 `init` 方法的 *开头处* 调用了父类的 `init` 方法。
栗子在此
例子如下
```php
namespace yii\components\MyClass;
......@@ -77,11 +77,11 @@ $component = \Yii::createObject([
> 补充:虽然调用 [[Yii::createObject()]] 的方法看起来更加复杂,但是这主要是因为它更加灵活强大,这货是基于高大上的[依赖注入容器](concept-di-container.md)的一种实现。
每个 [[yii\base\Object]] 类的一生(object lifecycle)是这样度过的:
每个 [[yii\base\Object]] 类的生命周期是这样度过的:
1. 构造器内的预初始化过程。你可以在这儿给各属性设置缺省值。
2. 通过 `$config` 配置对象。配置的过程可能会覆盖掉先前在构造器内设置的默认值。
3.[[yii\base\Object::init()|init()]] 方法内进行初始化的收尾工作。你可以通过重写此方法,进行一些良品检验呀,属性的标准化呀,之类的事情。
4. 对象方法调用。
4. 对象方法调用。
前三步都是在对象的构造器内发生的。这意味着一旦你获得了一个对象实例,那么它已经初始化为了一个妥妥的状态,放心大胆的用吧。
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment