一、先簡單回答兩個問題:
1、php 可以開發客戶端?
答:不可以,因為php是指令碼語言,是負責完成 b/s架構 或 c/s架構 的s部分,即:服務端的開發。(別去糾結 gtk、winbinder)
2、為什麼選擇 php 作為開發服務端的首選?
答:跨平台(可以執行在unix、linux、windows、mac os下)、低消耗(php消耗相當少的系統資源)、執行效率高(相對而言)、mysql的完美搭檔,本身是免費開源的,……
做過 api 的人應該了解,其實開發 api 比開發 web 更簡潔,但可能邏輯更複雜,因為 api 其實就是資料輸出,不用呈現頁面,所以也就不存在 mvc(api 只有 m 和 c),
1、和 web 開發一樣,首先需要一些相關的引數,這些引數,都會由客戶端傳過來,也許是 get 也許是 post,這個需要開發團隊相互之間約定好,或者制定統一規範。
資料怎麼返給客戶端?
直接輸出的形式,如:json、xml、text 等等。
4、客戶端獲取到你返回的資料後,在客戶端本地和使用者進行互動
1、單檔案實現多介面的形式有很多種,例如:if..elseif.. 或 switch 或 動態方法 (也就是tp的這種訪問函式體的形式)
2、對於資料的輸出最好用json,json具有相當強大的跨平台性,市場上各大主流程式語言都支援json解析,json正在逐步取代xml,成為網路資料的通用格式
3、介面安全,一定要增加介面驗證。例如,客戶端和服務端針對不同介面統一做好加密方式,服務端在對於每次介面需要都要進行驗證。以保證防止介面被惡意重新整理或黑客惡意呼叫,尤其是大型商業應用。
4、對於線上的 api 必須保證所有介面正常且關閉所有的錯誤資訊 => error_reporting(0),在輸出json 時,不能有任何其它輸出,否則,客戶端將解析資料失敗,直接 crash!
5、開發 api 和 web 有一定的區別,如果是 web 的話,可能**出錯了,不會導致特別嚴重的錯誤,也許只是導致資料寫入和查詢失敗,也許導致 web 的某個部分錯位或亂碼。但如果是 api,直接 crash!
6、做介面開發,不建議使用框架開發,原因概括起來有兩點(其實我有點冒風險的,本人也是 tper 一枚,畢竟這是tp的官網):
1)客戶端一般對服務端的響應速度有極高要求,因此,使用最原生態的 php 完成介面開發,是最高效的,假如用到了框架,還需要載入各種不需要多餘的檔案,就好比夏天穿了件冬天的衣服。試想,你在玩手機的時候,使用乙個應用隨便乙個操作,等半天才有動靜,你受的了嗎?
2)就是上面第4點提到的,框架對於web開發,是件很幸福的事,但對於 api 而言,你實在不敢想象它會給你出什麼岔子!最後你將痛苦不堪~~因為很多框架都是為 web 誕生的(我也很期待有一天能看到專門為開發 api 而生的框架或者擴充套件)
這個也有人糾結,介面效率與穩定性,還得看編碼的人,有的人可能寫的還不如框架跑的快,也有人覺得用框架沒什麼問題,這裡只是建議,關鍵看自己的實際情況,同時建議**上線前壓測一下
如何從 0 到 1 開發一款完整的直播 APP
編碼 在直播推流進行編碼時,盡量採用硬編,這可以減少 cpu 佔用率,間接可以減少手機的發熱量和耗電量。為了保證在所有裝置上我們都可以進行編碼,還需要準備乙個軟編方案,當某種機型上無法使用硬編,則立即還成軟編。連麥 作為觀眾給主播反饋的重要形式,可以極大豐富觀眾直播體驗。比如,主播在表演節目時,觀眾...
開發一款APP都有哪些流程?
1 需求溝通 1 清晰開發專案是為了解決什麼?都有哪些痛點?2 為了解決專案的痛點或需求,需要通過哪些功能去布局實施,將核心功能列舉並適當完善,以文字或者 的方式描述清楚。3 建立完善並且合乎邏輯,功能完整的需求文件。2 預算評估 乙份完善且高質量的需求文件是非常重要,對需求文件進行工期投入的計算,...
app上線發布流程 一款APP製作開發的整體流程
但是開發型別總分為兩項 自營開發和外包開發,這兩者本質上沒有什麼差別,只不過開發方不同。自營開發是按照自己公司設計想法開發,而外包開發是按照客戶的需求想法開發。開發流程三個步驟細分下來是 外包開發 自營開發 需求分析 溝通 整理和明確客戶需求,完成基礎思維導圖和需求文件,也是之後和客戶溝通的依據 產...