如何寫出優雅耐看的PHP程式碼?淺談書寫規範
如何寫出優雅耐看的PHP程式碼?這篇文章帶大家了解PHP程式碼的基本書寫規範和框架規範,了解它們讓你的PHP程式碼優雅一個檔次!
引言
今天老王同學跟我說,他的程式碼好糟糕,像一坨xiang。問我要怎麼
提高自己的程式碼質量,讓自己程式碼看得順眼一點,舒服一點, 就像
看到長腿MM,兩眼放光那種。
於是我: 你先這樣,然後這樣,然後再那樣。 。 。 。 。 。
老王同學: 別鬧, 到底是哪樣?
好的, 我要開始裝13了。 。 。
基本規格
先說最基本的東西:
變數名使用駝峰命名。不懂的單字不要用拼音,而是要查字典找到對應的單字。
常數命名使用大寫下劃線方式命名。如:
SYSTEM_EROOR = 50000
。縮排使用Tab鍵,不要打一堆空格做縮排。
類別名稱首字母大寫駝峰命名,需要見名知其意,註解說明這個類別的功能。例如:
- 方法名稱駝峰命名,方法行數盡量控制在80行左右,註解說明函數幹嘛用的。
- 花括號獨佔一行,例如:
- ##foreach慎用引用,例如以下程式碼會有問題:
2 4 6,實際結果是
2 4 4, 至於為什麼可
以看我之前的文章:
PHP中&符號你真的了解嗎?
。可以使用array_walk`方法避免這個問題, 範例:
- #避免
- if
,
elese嵌套過深,很多嵌套可以透過提前終止來消除, 舉個簡單的例子:
- 多個
if/else
使用switch來取代,PHP8.0版本可以使用
match更為簡潔。
phpstorm
中安裝
SonarLint外掛程式。如果你寫的程式碼出現虛線,表示不太理想,那麼可以根據提示修改,相信有強迫症的同學一定會改,久而久之代碼就很規範了。例如:
框架規範
- 前面說得都是比較基礎的東西,接下來才是主要的內容。
- 相信很多同學都用過常用的
thinkphp
丶
laravel丶
yii等流行框架之一。
- 這些框架都是MVC架構的,看過很多人的程式碼,要嘛把業務邏輯寫在控制器裡面,要嘛寫在Model裡面,寫在Model裡面比較寫控制器裡面的還相對好一點。其實對於大型專案都不太友善。
- 下文以Laravel框架為例。
參數驗證
- #API需要進行參數驗證,但是參數驗證寫在哪裡比較優雅呢?可能很多人在controller定義規則,然後在呼叫驗證方法,那麼驗證那段程式碼會在每個API裡面出現,例如我同事寫的。
- 這段程式碼在每個API裡面均會出現一次,豈不是很囉嗦,那麼要如何解決呢?
- 在Laravel的http目錄下建立一個
Requsts
目錄,用於存放請求的參數驗證類別。建立一個BaseRequest
類別:
#例如登入需要參數驗證再建立一個LoginRequest
類別繼承這個 BaseRequest
。
- 使用的時候只要在Controller的方法中註入這個請求類別即可。
這裡取得請求參數的時候會對表單進行驗證,否則參數驗證失敗會呼叫剛剛Request累積定義的方法丟出Json異常,回傳資訊給客戶端。
控制器
控制器的主要工作負載獲取請求資料和返回內容,不應做更多的事情,那麼可以定義一個Service層來處理業務邏輯。 所以我的控制器的程式碼只有一行。
- 在Laravel的app目錄下建立一個Services資料夾用於存放Service類,建立一個BaseService類別:
然後建立一個UserService來處理使用者相關的業務邏輯。
在UserController中註入這個UserService使用:
Model
Model不建議寫業務邏輯。 Model主要是用來定義一些內容,不應該操縱資料。
Model的資料操縱應該放在Repository中,在Laravel的app目錄下建立一個資料夾Repositories
。
定義BaseRepository:
定義UserRepository,用於使用者資料相關的操作, 在建構方法中註入UserModel:
#常數
專案中很多常數該怎麼定義?
在app目錄建立一個Constant目錄, 再建立一個Contstant類別來保存這些自訂常數。
這樣的好處是:
- 自訂常數可以集中的管理。
- 修改常數值的時候,只要在這個類別中找修改一次即可,程式碼更新維護性好。
原文網址:https://juejin.cn/post/6957290009682509854
#作者:ClassmateLin
推薦學習:《PHP影片教學》
以上是如何寫出優雅耐看的PHP程式碼?淺談書寫規範的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
