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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                Lying的服務組件其實是一個對象的單例,并且每個單例都對應一個唯一的ID。 > 配置名:`service`,默認配置寫在config/service.php中 [TOC] ### 定義一個組件 ~~~php 'id' => [ 'class' => '組件完整類名', //內置組件可省略 '可配置屬性1' => '' '可配置屬性2' => '' ], ~~~ 如果服務類沒有可配置屬性或者想使用默認配置屬性,你也可以這樣定義: ~~~php 'id' => '組件完整類名', ~~~ 這樣,你就定義好了一個組件`id`,你可以使用`\Lying::$maker->get('id')`或者`\Lying::$maker->id`來使用一個組件。 ### 內置核心組件 Lying內置了一些組件以及組件id,這些內置組件無法更改id對應的class,但是可配置組件的屬性,內置組件以及ID如下: ~~~php 'hook' => ['class' => 'lying\service\Hook'], 'request' => ['class' => 'lying\service\Request'], 'router' => ['class' => 'lying\service\Router'], 'cookie' => ['class' => 'lying\service\Cookie'], 'encrypter' => ['class' => 'lying\service\Encrypter'], 'dispatch' => ['class' => 'lying\service\Dispatch'], 'response' => ['class' => 'lying\service\Response'], 'view' => ['class' => 'lying\service\View'], 'session' => ['class' => 'lying\service\Session'], 'helper' => ['class' => 'lying\service\Helper'], ~~~ ### 定義相同組件 當然,你可以把某一個服務類設置成兩個ID不同的組件(**核心組件除外**),比如兩個數據庫連接實例: ~~~php 'db1' => [ 'class' => 'lying\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=db1;charset=utf8', 'user' => 'root', 'pass' => 'root', ], 'db2' => [ 'class' => 'lying\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=db2;charset=utf8', 'user' => 'root', 'pass' => 'root', ], ~~~ 然后你就可以使用`\Lying::$maker->get('db1')`和`\Lying::$maker->get('db2')`或者`\Lying::$maker->db1`和`\Lying::$maker->db2`來使用連個不同的數據庫連接實例了。 Lying為你準備了一些可重復定義的內置組件: ~~~php 'logger' => ['class' => 'lying\service\Logger'], 'cache' => ['class' => 'lying\cache\FileCache'], 'redis' => ['class' => 'lying\service\Redis'], 'db' => ['class' => 'lying\db\Connection'], 'upload' => ['class' => 'lying\upload\Upload'], 'captcha' => ['class' => 'lying\captcha\Captcha'], ~~~ ### 組件工廠 Lying為你提供了一個工廠實例`\Lying::$maker`,你可以使用`\Lying::$maker`來使用你已經定義的或者內置組件,這樣做的好處是你的IDE會自動提示你的組件功能,同時也便于組件的調用: ~~~php \Lying::$maker->hook; \Lying::$maker->request; \Lying::$maker->router; \Lying::$maker->cookie; \lying::$maker->encrypter; \Lying::$maker->dispatch; \Lying::$maker->response; \Lying::$maker->view; \Lying::$maker->session; \Lying::$maker->helper \Lying::$maker->logger; \Lying::$maker->cache; \Lying::$maker->redis; \Lying::$maker->db; \Lying::$maker->upload; \Lying::$maker->captcha; ~~~ 對于可重復配置的內置組件,可這樣使用不同組件: ~~~php \Lying::$maker->logger('logger1'); //等同于\Lying::$maker->logger1; \Lying::$maker->cache('cache1'); //等同于\Lying::$maker->cache1; \Lying::$maker->redis('redis1'); //等同于\Lying::$maker->redis1; \Lying::$maker->db('db1'); //等同于\Lying::$maker->db1; \Lying::$maker->upload('up1'); //等同于\Lying::$maker->up1; \Lying::$maker->captcha('ca1'); //等同于\Lying::$maker->ca1; ~~~ ### 動態注冊服務 在程序里,可以動態注冊服務組件: ~~~php \Lying::$maker->register('template', [ 'class' => 'lying\cache\FileCache', 'dir' => DIR_RUNTIME . DS . 'compile', 'gc' => 80, 'suffix' => 'php', 'serialize' => false, ]); ~~~ 或者: ~~~php \Lying::$maker->register('template', 'lying\cache\FileCache'); ~~~ 然后你就可以使用注冊的組件了: ~~~php \Lying::$maker->cache('template'); //或者 \Lying::$maker->template; ~~~ > 注意,已經注冊過的組件不會受到影響!!!也不會改變任何配置!!!
                  <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>

                              哎呀哎呀视频在线观看