今天老王同窗跟我說,他的代碼好糟糕,像一坨xiang。問我要怎麼php
提升本身的代碼質量,讓本身代碼看得順眼一點,舒服一點, 就像laravel
看到大長腿MM,兩眼放光那種。thinkphp
因而我: 你先這樣,而後這樣,而後再那樣。。。。。。<!--more-->架構
老王同窗: 別鬧, 究竟是哪樣?app
好的, 我要開始裝13了。。。框架
先說一下最基本的東西:yii
SYSTEM_EROOR = 50000
。
預期結果是輸出: 2 4 6
,實際結果是2 4 4
, 至於爲何可
以看我以前的文章: PHP中
&符號你真的瞭解嗎?`。
能夠使用array_walk
方法避免這個問題, 示例:phpstorm
if
, elese
嵌套過深,不少嵌套能夠經過提早終止來消除, 舉個簡單的例子:
建議使用第二種方式,不符合條件的直接返回,剩下的就是符號條件的,那麼避免了在if裏面寫不少代碼。函數
if/else
使用switch來替代,PHP8.0版本能夠使用match
更爲簡潔。phpstorm
中安裝SonarLint
插件。若是你寫的代碼出現虛線,說明不太理想,那麼能夠根據提示修改,相信有強迫症的同窗必定會改,長此以往代碼就很規範了。例如:thinkphp
丶laravel
丶yii
等流行框架之一。API須要進行參數驗證,可是參數驗證寫在哪裏比較優雅呢?可能不少人在controller定義規則,而後在調用驗證方法,那麼驗證那段代碼將在每一個API裏面出現,例如我同事寫的。spa
這段代碼在每一個API裏面均會出現一次,豈不是很囉嗦,那麼如何解決呢?
Requsts
目錄,用於存放請求的參數驗證類。創建一個BaseRequest
類:
好比登陸須要參數驗證再創建一個LoginRequest
類繼承這個BaseRequest
。
這裏獲取請求參數的時候會對錶單進行驗證,不然參數驗證失敗會調用剛剛Request積累定義的方法拋Json異常,返回信息給客戶端。
控制器的主要工做負載獲取請求數據和返回內容,不該作更多的事情,那麼能夠定義一個Service層來處理業務邏輯。
因此個人控制器的代碼只有一行。
而後創建一個UserService來處理用戶相關的業務邏輯。
在UserController中注入這個UserService使用:
Model不建議寫業務邏輯。Model主要是用來定義一些內容,不該該操縱數據。
Model的數據操縱應該放在Repository中,在Laravel的app目錄下創建一個文件夾Repositories
。
定義BaseRepository:
定義UserRepository,用於用戶數據相關的操做, 在構造方法中注入UserModel:
項目中不少常量該怎麼定義?
在app目錄建立一個Constant目錄, 再創建一個Contstant類來保存這些自定義常量。
這樣的好處是: