站長資訊網
        最全最豐富的資訊網站

        如何寫出優雅耐看的PHP代碼?淺談書寫規范

        如何寫出優雅耐看的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類:

        如何寫出優雅耐看的PHP代碼?淺談書寫規范

        比如登錄需要參數驗證再建立一個LoginRequest類繼承這個BaseRequest

        如何寫出優雅耐看的PHP代碼?淺談書寫規范

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

        如何寫出優雅耐看的PHP代碼?淺談書寫規范

        這里獲取請求參數的時候會對表單進行驗證,否則參數驗證失敗會調用剛剛Request積累定義的方法拋Json異常,返回信息給客戶端。

        控制器

        控制器的主要工作負載獲取請求數據和返回內容,不應做

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 国产一精品一AV一免费| jiucao在线观看精品| 国产精品第12页| 欧美精品福利在线视频 | 精品一区二区三区四区| 亚洲欧美国产精品专区久久| 国产精品99久久久久久董美香| 国产成人精品无码一区二区| 野狼精品社区| 亚洲爆乳无码精品AAA片蜜桃| 国产精品片在线观看手机版| 久久精品免费一区二区三区| 成人区人妻精品一区二区不卡视频| 伊人久久精品无码av一区| 久久无码人妻精品一区二区三区| 国产精品麻豆VA在线播放| 欧美一区二区精品系列在线观看| 国产伦精品一区二区三区视频猫咪| 国产精品无码一区二区在线| 国内精品一级毛片免费看 | 国产欧美日本亚洲精品一5| 国产精品亚洲专区在线观看 | 精品少妇一区二区三区在线| 91嫩草亚洲精品| 99久久99久久精品国产片果冻 | 久久精品人人做人人妻人人玩| 亚洲精品尤物yw在线影院| 精品一区二区三区免费视频 | 国产福利精品视频自拍 | 中文字幕精品一区影音先锋| 国产精品亚洲精品| 久久国产精品99久久久久久老狼| 国产精品成人观看视频国产| 精品久久久久久久久中文字幕| 国产精品专区第二| 青青草国产精品| 99久久国产主播综合精品| 国产精品亚洲视频| 青草青草久热精品视频在线观看| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 麻豆精品视频在线观看91|