Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yii2
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PSDI Army
yii2
Commits
cb5d6f79
Commit
cb5d6f79
authored
Jun 25, 2014
by
东方孤思子(Paris·QianSen)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
polish the words based on feedback.
parent
d5b9f970
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
7 deletions
+7
-7
concept-components.md
docs/guide-zh-CN/concept-components.md
+7
-7
No files found.
docs/guide-zh-CN/concept-components.md
View file @
cb5d6f79
...
...
@@ -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.
对象方法调用。
前三步都是在对象的构造器内发生的。这意味着一旦你获得了一个对象实例,那么它已经初始化为了一个妥妥的状态,放心大胆的用吧。
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment