<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、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 門面 (Facade) MixPHP 的門面具有如下功能: - 為 **組件** 提供了一個靜態調用接口,帶來了更好的可讀性與快速性, - 同類型組件多源切換,如:多個 PDO、Redis 連接切換。 你可以為任何組件定義一個 `facade` 類。 ## 核心門面類庫 系統給內置的常用類庫定義了 Facade 類庫,可直接使用,包括: | 組件 | 門面類 | | --- | --- | | app()->request | mix\facades\Request | | app()->response | mix\facades\Response | | app()->input | mix\facades\Input | | app()->output | mix\facades\Output | | app()->log | mix\facades\Log | | app()->error | mix\facades\Error | | app()->token | mix\facades\Token | | app()->session | mix\facades\Session | | app()->cookie | mix\facades\Cookie | | app()->pdo | mix\facades\PDO | | app()->redis | mix\facades\Redis | ## 自定義門面 為下面的組件定義一個門面: ~~~ // 組件配置 'components' => [ // 普通命名 'myComponent' => [ // 類路徑 'class' => 'apps\index\components\MyComponent', // 屬性 'name' => '小花', ], ], ~~~ 然后在 `apps\httpd\facades` 目錄新增一個 `myComponent` 類文件。 ~~~ <?php namespace apps\httpd\facades; use mix\base\Facade; class myComponent extends Facade { // 獲取實例 public static function getInstance() { return app()->myComponent; } } ~~~ ## 門面使用 原本組件的調用: ~~~ app()->myComponent->foo(); ~~~ 門面類的調用,是不是簡單很多。 ~~~ myComponent::foo(); ~~~ ## 代碼補全 自己創建的門面類是沒有代碼補全的,需要用戶自己在注釋中添加。 例如: ~~~ * @method emergency($message, array $context = []) static * @method alert($message, array $context = []) static * @method critical($message, array $context = []) static * @method error($message, array $context = []) static ~~~ [>> 到 GitHub 查看門面注釋 DEMO <<](https://github.com/mixstart/mixphp-framework/blob/v1/src/facades/Log.php) ## 同類型組件多源切換 系統提供的如下 Facade 類庫具有多源切換功能: | 門面類 | | --- | | mix\facades\PDO | | mix\facades\Redis | 我們先看一下源碼,看看于普通的有何不同: [>> 到 GitHub 查看多源切換門面 <<](https://github.com/mixstart/mixphp-framework/blob/v1/src/facades/PDO.php) - `getInstances` 方法返回一個具有多個組件的數組。 - `name` 方法可以通過名稱切換當前使用的組件,這樣就達到了切換數據庫的效果。 當然我們實際使用中一定不可能去修改這個核心門面,只需寫一個新的門面繼承 `mix\facades\PDO` 類,并重寫 `getInstances` 方法即可。 框架默認代碼已經幫你繼承好了,如下: [>> 到 GitHub 查看門面 DEMO <<](https://github.com/mix-php/mix/blob/v1/apps/common/facades/PDO.php) 當需要頻繁使用多個連接時,只需增加一個 pdo 組件: ~~~ // 數據庫 'pdo' => [ // 類路徑 'class' => 'mix\client\PDO', // 數據源格式 'dsn' => env('DB_DSN'), // 數據庫用戶名 'username' => env('DB_USERNAME'), // 數據庫密碼 'password' => env('DB_PASSWORD'), // 設置PDO屬性: http://php.net/manual/zh/pdo.setattribute.php 'attribute' => [ // 設置默認的提取模式: \PDO::FETCH_OBJ | \PDO::FETCH_ASSOC \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, ], ], // 數據庫 'db1.pdo' => [ // 類路徑 'class' => 'mix\client\PDO', // 數據源格式 'dsn' => env('DB_DSN'), // 數據庫用戶名 'username' => env('DB_USERNAME'), // 數據庫密碼 'password' => env('DB_PASSWORD'), // 設置PDO屬性: http://php.net/manual/zh/pdo.setattribute.php 'attribute' => [ // 設置默認的提取模式: \PDO::FETCH_OBJ | \PDO::FETCH_ASSOC \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, ], ], ~~~ 然后修改 `apps/common/facades/PDO` 類代碼如下: ~~~ /** * 獲取實例集合 * @return array */ public static function getInstances() { return [ 'default' => app()->pdo, 'db1' => app('db1')->pdo, ]; } ~~~ 使用: ~~~ // 使用 default /apps/common/facades/PDO::createCommand($sql)->queryAll(); // 使用 db1 /apps/common/facades/PDO::name('db1')->createCommand($sql)->queryAll(); ~~~
                  <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>

                              哎呀哎呀视频在线观看