<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                _美到極致不是無可增加,而是無可減少。 -- Antonie de Saint-Exupery_ ##2.18.1 資源服務 資源可以理解成接口開發過程中所使用到的第三方系統、功能,如數據庫,COOKIE、緩存;而服務則是指領域驅動設計中無狀態的服務操作,如加密、過濾器、加載器等。 而在PhalApi中,資源和服務更多是通過DI來統一進行管理。并且我們使用資源服務來統稱這兩者。 在使用PhalApi進行開發時,應該分別從以下三個層面來使用資源服務。 + 1、基本使用 + 2、高級應用 + 3、定制擴展 其中,基本使用是指使用框架默認提供的特性、功能,只需要稍微修改調整一下配置(甚至連配置都不需要修改)即可使用; 高級應用是指切換使用具有同類特性、功能的資源服務,對客戶端而言,其實現的功能是等價的,只在于內部實現不同,通常此層面適用于有不同需求的應用場景; 最后是,定制擴展則是充滿活力、生氣的做法,對于項目需要用到而框架未提供的,都可以通過此方式進行定制、擴展。 ##2.18.2 仍然以緩存為例 下面以大家熟悉的緩存為例,分別說明這三個層面的演進使用。 ###(1)基本使用 在./Public/init.php初始化文件中,我們可以去掉對Memcache的注釋,從而在項目啟用cache這一資源服務。 ```javascript //緩存 - Memcache/Memcached DI()->cache = function () { return new PhalApi_Cache_Memcache(DI()->config->get('sys.mc')); }; ``` 或者,我們還需要根據配置的MC不同,稍微更改一下./Config/sys.php中對應的配置: ```javascript /** * MC緩存服務器參考配置 */ 'mc' => array( 'host' => '127.0.0.1', 'port' => 11211, ), ``` 然后,就可以在項目中如前面說的那樣使用cache進行對緩存進行操作。 ```javascript //設置緩存 DI()->cache->set($key, $value, $expireTime); //讀取緩存 $rs = DI()->cache->get($key); ``` ###(2)高級應用 但是我們都知道,緩存的實現方案以及存儲的方式多種多樣,包括但不限于:數據庫緩存、文件緩存、COOKIE/session緩存、Redis緩存、APC緩存。 假設我們需要切換到Redis緩存,則可以在init.php初始化中,把DI()->cache注冊成Redis緩存即可。 ```javascript DI()->cache = function () { return new PhalApi_Cache_Redis(DI()->config->get('sys.redis')); }; ``` 同時,在./Config/sys.php中添加對應的配置: ```javascript 'redis' => array( 'host' => '127.0.0.1', 'port' => 9527, ), ``` ###(3)定制擴展 毫無疑義,實際項目需要面對的開發場景更為復雜,可能需要使用到加密、壓縮、分片或者其他處理手段,又可能使用其他存儲媒介。 當框架基本的特性無法滿足時,這時就需要考慮進行定制擴展了。值得慶幸的是,實現這一點并不難。一如往常那樣,我們需要 **先實現、再注冊** 。 ####實現資源服務接口 很多通常的資源服務,我們都統一了接口規約。在[1.19]-DI服務速查:各資源服務一覽表 中可以查到每個資源服務所需要實現的接口。 如這次的緩存接口類是: ```javascript <?php interface PhalApi_Cache { /** * 設置緩存 * * @param string $key 緩存key * @param mixed $value 緩存的內容 * @param int $expire 緩存有效時間,單位秒,非時間戳 */ public function set($key, $value, $expire = 600); /** * 讀取緩存 * * @param string $key 緩存key * @return mixed 失敗情況下返回NULL */ public function get($key); /** * 刪除緩存 * * @param string $key */ public function delete($key); } ``` 我們可以先在項目中,實現此接口,如: ```javascript class Common_MyCache implements PhalApi_Cache { // ... ... } ``` 具體的實現,這里不再舉例。 ####再注冊 當實現好子類后,我們便可以在init.php初始化文件中,切換到我們自己的定制類。 ```javascript DI()->cache = 'Common_MyCache'; ``` ##2.18.3 實現、定制化你的資源服務 正如《項目百態》書中隱藏的美模式一節中寫道的“恰恰相反,只有減少特性才能提升設計的美感。最好的設計都是功能明確又留有答題,也是易于測試的,即使要作修改,也不會帶來新的麻煩。” 是以,作為一個框架,我們應當以發散的方式去設計;但為了能為應用提供可用的功能,我們又應當以收斂的方式去實現。如果我們提供的功能不足以滿足大部分主流的業務場景,那么我們至少需要提供可擴展的空間。 類似的場景,還包括有接口簽名、對接口參數的獲取與接口結果的返回。當大家在進行項目開發過程中,有不同的場景需求時,可以按上面介紹的三個層面分別進行。 先嘗試使用簡單、默認的方式進行配置解決,再切換到框架或已有的解決方案,最后再嘗試擴展自己的定制類。
                  <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>

                              哎呀哎呀视频在线观看