<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 對象基類 MixPHP 的核心類大部分都是繼承對象基類,組件全部繼承對象基類,了解對象基類有助于我們更加了解框架的運行機制與設計方式。 | 類 | | --- | | mix\base\BaseObject | ## 該類的作用 使配置的使用更加“面向對象”,下面對比一下類庫封裝。 ThinkPHP: ~~~php class Http { public $baseurl public function __construct() { Config::load('config'); $this->url = Config::get('config.baseurl'); $this->init(); } public function init() { // 初始化處理 } } $http = new Http(); ~~~ MixPHP: ~~~php class Http extends BaseObject { public $baseurl // 當屬性導入完成后,會自動執行該方法 public function onInitialize() { // 初始化處理 } } $attributes = [ 'baseurl' => '', ]; $http = new Http($attributes); ~~~ 對比上面兩種方式,在配置處理方面顯然使用對象基類的方式更好一些。 ## 更多的好處 對象基類使我們可以通過一個配置數組就可動態控制類的全部屬性,使得我們可以控制整個框架的運行參數。 ## 通過配置實例化對象 通過閱讀“組件”章節,我們了解到:使用頻繁的類需定義為組件,那使用不頻繁的類該如何處理呢? MixPHP 提供了統一的實例化方法: 在應用配置內的 `libraries` 字段內注冊,下面是一個自定義類的注冊配置: ~~~php // 類庫配置 'libraries' => [ // 普通命名 'myObject' => [ // 類路徑 'class' => 'apps\httpd\libraries\Http', // 屬性 'baseurl' => 'http://www.baidu.com', ], // 帶前綴命名 'prefix.myObject' => [ // 類路徑 'class' => 'apps\httpd\libraries\Http', // 屬性 'baseurl' => 'http://www.baidu.com', ], // 帶多級前綴命名 'prefix.prefix.myObject' => [ // 類路徑 'class' => 'apps\httpd\libraries\Http', // 屬性 'baseurl' => 'http://www.baidu.com', ], ], ~~~ - prefix.prefix.myObject 是配置名稱,實例化時使用。 - class 需要實例化類的命名空間。 - 其他字段:都會在該類實例化后,導入為對象屬性,key為屬性名稱,value為屬性的值。 在框架內任何位置都可使用以下方法實例化: ~~~php $http = \apps\httpd\libraries\Http::newInstanceByConfig('libraries.[prefix.prefix.myObject]'); ~~~ [>> 到 GitHub 查看默認類庫配置 <<](https://github.com/mix-php/mix/blob/v1/apps/console/config/main.php#L81) ## 對象基類的事件 對象基類包含了三個事件: - onConstruct:構造事件,相當于 __construct 方法。 - onInitialize:當組件完成構造事件并導入配置信息為屬性后觸發該事件,用于做一些初始化處理。 - onDestruct:析構事件,相當于 __destruct 方法。 使用時只需重寫這幾個事件方法即可。 ~~~php // 構造事件 public function onConstruct() { parent::onConstruct(); // ... } // 初始化事件 public function onInitialize() { parent::onInitialize(); // ... } // 析構事件 public function onDestruct() { parent::onDestruct(); // ... } ~~~ ## 第三方類庫通過配置實例化 `Trait` 如果你想通過配置實例化第三方類庫,由于第三方類庫肯定是不會繼承 `BaseObject` 的,構造、析構、處理配置信息的方式也是不會與 `BaseObject` 一樣的,所以只能交由用戶自行處理。 用戶只需新增一個類,繼承第三方類庫,實現 `mix\base\StaticInstanceInterface` 接口,并引用 `mix\base\StaticInstanceTrait` 即可。 代碼如下: ~~~php class MyLibrary extends ThirdClass implements StaticInstanceInterface { use StaticInstanceTrait; // 如果需要接收配置,可以在這里手動處理,$config 就是傳入的配置信息 public function __construct($config = []) { parent::__construct(); } } ~~~ 然后將這個類注冊到類庫配置 `libraries` 下即可,注冊后就可通過配置實例化: ~~~ $object = ThirdClass::newInstanceByConfig('libraries.[***]'); ~~~
                  <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>

                              哎呀哎呀视频在线观看