<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 組件(Component) 組件是 Yii 應用的主要基石。是 yii\base\Component 類或其子類的實例。三個用以區分它和其它類的主要功能有: * [屬性(Property)](http://www.yiichina.com/doc/guide/2.0/concept-properties) * [事件(Event)](http://www.yiichina.com/doc/guide/2.0/concept-events) * [行為(Behavior)](http://www.yiichina.com/doc/guide/2.0/concept-behaviors) 或單獨使用,或彼此配合,這些功能的應用讓 Yii 的類變得更加靈活和易用。以小部件 yii\jui\DatePicker 來舉例,這是個方便你在?[視圖](http://www.yiichina.com/doc/guide/2.0/structure-view)中生成一個交互式日期選擇器的 UI 組件: ~~~ use yii\jui\DatePicker; echo DatePicker::widget([ 'language' => 'zh-CN', 'name' => 'country', 'clientOptions' => [ 'dateFormat' => 'yy-mm-dd', ], ]); ~~~ 這個小部件繼承自 yii\base\Component,它的各項屬性改寫起來會很容易。 正是因為組件功能的強大,他們比常規的對象(Object)稍微重量級一點,因為他們要使用額外的內存和 CPU 時間來處理?[事件](http://www.yiichina.com/doc/guide/2.0/concept-events)?和?[行為](http://www.yiichina.com/doc/guide/2.0/concept-behaviors)?。如果你不需要這兩項功能,可以繼承 yii\base\Object 而不是 yii\base\Component。這樣組件可以像普通 PHP 對象一樣高效,同時還支持[屬性(Property)](http://www.yiichina.com/doc/guide/2.0/concept-properties)功能。 當繼承 yii\base\Component 或 yii\base\Object 時,推薦你使用如下的編碼風格: * 若你需要重寫構造方法(Constructor),傳入?`$config`?作為構造器方法**最后一個**參數,然后把它傳遞給父類的構造方法。 * 永遠在你重寫的構造方法**結尾處**調用一下父類的構造方法。 * 如果你重寫了 yii\base\Object::init() 方法,請確保你在?`init`?方法的**開頭處**調用了父類的?`init`?方法。 例子如下: ~~~ namespace yii\components\MyClass; use yii\base\Object; class MyClass extends Object { public $prop1; public $prop2; public function __construct($param1, $param2, $config = []) { // ... 配置生效前的初始化過程 parent::__construct($config); } public function init() { parent::init(); // ... 配置生效后的初始化過程 } } ~~~ 另外,為了讓組件可以在創建實例時[能被正確配置](http://www.yiichina.com/doc/guide/2.0/concept-configurations),請遵照以下操作流程: ~~~ $component = new MyClass(1, 2, ['prop1' => 3, 'prop2' => 4]); // 方法二: $component = \Yii::createObject([ 'class' => MyClass::className(), 'prop1' => 3, 'prop2' => 4, ], [1, 2]); ~~~ > 補充:盡管調用 Yii::createObject() 的方法看起來更加復雜,但這主要因為它更加靈活強大,它是基于[依賴注入容器](http://www.yiichina.com/doc/guide/2.0/concept-di-container)實現的。 yii\base\Object 類執行時的生命周期如下: 1. 構造方法內的預初始化過程。你可以在這兒給各屬性設置缺省值。 2. 通過?`$config`?配置對象。配置的過程可能會覆蓋掉先前在構造方法內設置的默認值。 3. 在 yii\base\Object::init() 方法內進行初始化后的收尾工作。你可以通過重寫此方法,進行一些良品檢驗,屬性的初始化之類的工作。 4. 對象方法調用。 前三步都是在對象的構造方法內發生的。這意味著一旦你獲得了一個對象實例,那么它就已經初始化就緒可供使用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看