类别: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网别的相干文章!

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章