先在這裡感謝phalapi架構創始人@dogstar,為我們提供了這樣一個優秀的開源架構.
在本小節主要講解如何使用phalapi架構自帶的國際化和文檔自動生成,以及這樣做可以的優點和好處和能解決哪方面的問題
附上:
說道國際化大家應該不陌生,對于顯示端(web,andorid,ios)來說就是對顯示的内容可以任意切換語言,
但對于服務端來說就是對于傳回值可以任意切換語言,來達到給國外友人去使用這種業務,
雖然說這種需求是少數,但是在架構内部有提供良好處理國際化這種業務的工具,讓我們先看看具體是什麼樣子的
大家在init.php下面可以看到這樣一句話
這句話是指向了/language/zh_cn/common.php檔案,打開這個檔案可以發現這樣一組對照關系
我們看看自帶的demo例子裡面有使用到第一個,使用方法是這樣的
大家是不是感覺突然之間發現了什麼,對的就是使用t方法我們看一下t方法的注釋
這裡的$msg 也就是在common.php中的key比如user not exists
$params參數是用來替換key裡面用{name}括弧括起來的參數的傳遞一個數組key就和括弧裡面的參數相同value就是你需要顯示的類容
是不是感覺簡單易用啊,那我們動手實驗一下我們把zh_cn/common.php加入一條對照
在en/common.php也加入一條資料
我們修改default.index接口如下
我們看能得到什麼結果
那我們把init.php中的sl('zh_cn');改成sl('en');會有什麼結果呢
就能得到我們在en/common.php中寫下的login success1這樣就可以輕易的切換傳回語言進而實作國際化
但是它帶來的好處不僅如此,還有易于修改和高可用這兩點好處
先說第一點易于修改:我在原來剛剛開始做項目的時候每個接口裡面傳回值全是寫死的,比如使用者不存在這種等等的錯誤傳回,當要修改的時候我們面臨了一個問題全局替換,這樣是很不可取的是以後面就統一成了一個統一的檔案來存放傳回結果,當我們需要把使用者不存在修改成請确認使用者的真實性這樣的業務的時候,我們隻需要修改一個統一的檔案
好處之二就是高可用,高可用的表現又有兩種一種是上面所說的項目内的複用,第二種就是新項目的複用,當你開始一個新項目的時候其實已經有很多傳回是通用的了,那麼你就可以直接使用或者是拷貝過來,很多重複的工作量就可以省去
大家可以發現和index.php以及init.php并行的還有一個checkapiparams.php一直沒有用到,當我們試着去通路一下
看到了這樣的頁面,通路這個檔案的時候和通路接口一樣的預設通路了default.index的文檔頁面也有說明
它的機制是通過接口檔案上的注釋生成的傳回結果
剖析一下@return string title 标題 第一個是必要參數@return後面接着一個空格(千萬不能多空格否則會失效)傳回類型在接着一個空格傳回名稱
請求參數會按照接口文檔中的getrules生成一些限定條件會自動生成說明需要加上'desc' => 說明就能生成大家可以試着通路一下user.getbaseinfo接口文檔就能看到請求參數是有說明的
使用自動生成文檔的好處在于會時時更新不必在開發過程中要取維護接口文檔而煩惱,還有一點就是容錯高因為是事實的是以不會出現請求參數接口和文檔不同步的情況是以很推薦使用,但是對于傳回結果來說需要手工維護不過也比維護文檔來的友善,而且不用下載下傳網上直接看,
對于這個檔案可以自定義成自己的文檔入口檔案,可以自己劃分子產品然後把接口文檔的位址寫上去名稱和說明這樣也不需要手動在url裡面去輸入接口名稱了
注:在這裡有一個坑,如果要使用自動生成文檔的話需要關掉一些php緩存拓展,因為這些拓展在緩存的時候會去除掉注釋之後在緩存會導緻傳回結果無法生成,比如opcache.xcache這類的拓展都會導緻此類問題
本小節主要講解了一下如何使用國際化使用的好處,以及運用官方工具生成及時文檔,在下一章節我們會講解激動人心的資料庫操作希望大家能持續關注!
注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!