类别:YII / 日期:2019-12-05 / 浏览:172 / 评论:0

组件是 Yii 运用的重要基石。是 yii\base\Component 类或其子类的实例。 三个用以辨别它和别的类的重要功用有:
属性(Property) (引荐进修:yii框架)
事宜(Event)
行动(Behavior)
或零丁运用,或相互合营,这些功用的运用让 Yii 的类变得越发天真和易用。 以小部件 yii\jui\DatePicker 来举例, 这是个轻易你在 视图 中生成一个交互式日期选择器的 UI 组件:
use yii\jui\DatePicker; echo DatePicker::widget([ 'language' => 'zh-CN', 'name' => 'country', 'clientOptions' => [ 'dateFormat' => 'yy-mm-dd', ], ]);use yii\jui\DatePicker; echo DatePicker::widget([ 'language' => 'zh-CN', 'name' => 'country', 'clientOptions' => [ 'dateFormat' => 'yy-mm-dd', ], ]);
这个小部件继续自 yii\base\Component,它的各项属性改写起来会很轻易。
恰是由于组件功用的壮大,他们比通例的对象(Object)轻微重量级一点,由于他们要运用分外的内存和 CPU 时候来处置惩罚 事宜 和 行动 。
假如你不须要这两项功用,能够继续 yii\base\Object 而不是 yii\base\Component。如许组件能够像一般 PHP 对象一样高效, 同时还支撑属性(Property)功用。
当继续 yii\base\Component 或 yii\base\Object 时, 引荐你运用以下的编码作风:
若你须要重写组织要领(Constructor),传入 $config 作为组织器要领末了一个参数, 然后把它传递给父类的组织要领。
永久在你重写的组织要领结尾处挪用一下父类的组织要领。
假如你重写了 yii\base\BaseObject::init() 要领,请确保你在 init 要领的开头处挪用了父类的 init 要领。
<?php namespace yii\components\MyClass; use yii\base\BaseObject; class MyClass extends BaseObject { public $prop1; public $prop2; public function __construct($param1, $param2, $config = []) { // ... 在运用设置之前初始化 parent::__construct($config); } public function init() { parent::init(); // ... 运用设置后举行初始化 } }
别的,为了让组件能够在建立实例时能被准确设置,请遵循以下操纵流程:
$component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]); // 要领二: $component = \Yii::createObject([ 'class' => MyClass::className(), 'prop1' => 3, 'prop2' => 4, ], [1, 2])
以上就是yii2.0 组件是什么的细致内容,更多请关注ki4网别的相干文章!