首頁  >  文章  >  後端開發  >  如何寫出優雅耐看的PHP程式碼?淺談書寫規範

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

青灯夜游
青灯夜游轉載
2021-08-24 16:16:073636瀏覽

如何寫出優雅耐看的PHP程式碼?這篇文章帶大家了解PHP程式碼的基本書寫規範和框架規範,了解它們讓你的PHP程式碼優雅一個檔次!

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

引言

今天老王同學跟我說,他的程式碼好糟糕,像一坨xiang。問我要怎麼

提高自己的程式碼質量,讓自己程式碼看得順眼一點,舒服一點, 就像

看到長腿MM,兩眼放光那種。

於是我: 你先這樣,然後這樣,然後再那樣。 。 。 。 。 。

老王同學: 別鬧, 到底是哪樣?

好的, 我要開始裝13了。 。 。

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

基本規格

先說最基本的東西:

  • 變數名使用駝峰命名。不懂的單字不要用拼音,而是要查字典找到對應的單字。

  • 常數命名使用大寫下劃線方式命名。如:SYSTEM_EROOR = 50000

  • 縮排使用Tab鍵,不要打一堆空格做縮排。

  • 類別名稱首字母大寫駝峰命名,需要見名知其意,註解說明這個類別的功能。例如:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

  • 方法名稱駝峰命名,方法行數盡量控制在80行左右,註解說明函數幹嘛用的。

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

  • 花括號獨佔一行,例如:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

    ##foreach慎用引用,例如以下程式碼會有問題:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

預期結果是輸出:

2 4 6,實際結果是 2 4 4, 至於為什麼可 以看我之前的文章: PHP中&符號你真的了解嗎?。可以使用array_walk`方法避免這個問題, 範例:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

    #避免
  • if, elese嵌套過深,很多嵌套可以透過提前終止來消除, 舉個簡單的例子:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

#建議使用第二種方式,不符合條件的直接返回,剩下的就是符號條件的,那麼就避免了在if裡面寫很多程式碼。

  • 多個

    if/else使用switch來取代,PHP8.0版本可以使用match更為簡潔。

  • phpstorm中安裝SonarLint外掛程式。如果你寫的程式碼出現虛線,表示不太理想,那麼可以根據提示修改,相信有強迫症的同學一定會改,久而久之代碼就很規範了。例如:

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

方法未使用,方法名稱不規範已經告訴你了,可以快速修改,也可以自己修改。

框架規範

  • 前面說得都是比較基礎的東西,接下來才是主要的內容。

  • 相信很多同學都用過常用的

    thinkphplaravelyii等流行框架之一。

  • 這些框架都是MVC架構的,看過很多人的程式碼,要嘛把業務邏輯寫在控制器裡面,要嘛寫在Model裡面,寫在Model裡面比較寫控制器裡面的還相對好一點。其實對於大型專案都不太友善。

  • 下文以Laravel框架為例。

參數驗證

  • #API需要進行參數驗證,但是參數驗證寫在哪裡比較優雅呢?可能很多人在controller定義規則,然後在呼叫驗證方法,那麼驗證那段程式碼會在每個API裡面出現,例如我同事寫的。

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

  • 這段程式碼在每個API裡面均會出現一次,豈不是很囉嗦,那麼要如何解決呢?

如何寫出優雅耐看的PHP程式碼?淺談書寫規範

  • 在Laravel的http目錄下建立一個Requsts目錄,用於存放請求的參數驗證類別。建立一個BaseRequest類別:

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

#例如登入需要參數驗證再建立一個LoginRequest類別繼承這個 BaseRequest

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

  • 使用的時候只要在Controller的方法中註入這個請求類別即可。

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

這裡取得請求參數的時候會對表單進行驗證,否則參數驗證失敗會呼叫剛剛Request累積定義的方法丟出Json異常,回傳資訊給客戶端。

控制器

控制器的主要工作負載獲取請求資料和返回內容,不應做更多的事情,那麼可以定義一個Service層來處理業務邏輯。 所以我的控制器的程式碼只有一行。

  • 在Laravel的app目錄下建立一個Services資料夾用於存放Service類,建立一個BaseService類別:

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

然後建立一個UserService來處理使用者相關的業務邏輯。

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

在UserController中註入這個UserService使用:

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

Model

Model不建議寫業務邏輯。 Model主要是用來定義一些內容,不應該操縱資料。

Model的資料操縱應該放在Repository中,在Laravel的app目錄下建立一個資料夾Repositories

定義BaseRepository:

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

定義UserRepository,用於使用者資料相關的操作, 在建構方法中註入UserModel:

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

#常數

專案中很多常數該怎麼定義?

在app目錄建立一個Constant目錄, 再建立一個Contstant類別來保存這些自訂常數。

這樣的好處是:

  • 自訂常數可以集中的管理。
  • 修改常數值的時候,只要在這個類別中找修改一次即可,程式碼更新維護性好。

1如何寫出優雅耐看的PHP程式碼?淺談書寫規範

原文網址:https://juejin.cn/post/6957290009682509854

#作者:ClassmateLin

推薦學習:《PHP影片教學

以上是如何寫出優雅耐看的PHP程式碼?淺談書寫規範的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:掘金--ClassmateLin。如有侵權,請聯絡admin@php.cn刪除