對許多laravel的初學者而言,Laravel的命名系統常常搞不清楚(我自己就是這樣)。到底Model的名字字首是要大寫還是小寫?單數還是複數?駝峰還是底線?那資料表的命名規則、controllar…的命名規則又是如何呢?
這些命名規則不見得會影響到程式的運作,但是,一個好的命名習慣,可以幫助自己或別人以後再進行城市維護的時候,可以很快地進入狀況,並且找出問題來。
因此,決定好好來徹底研究一下。讓我們一起來弄懂這些規則,希望大家以後都可以依照規範命名喔!
基本命名
以下就以要新增一個book reviews的Model為例說明。切記,所有的命名都使用「英語」,切物使用中文或其他與言。
| 使用時機 | 單數、複數 | 大、小駝峰或蛇底式 | 範例 |
| Model | 單數 | 大駝峰 | BookReview |
| 資料表名稱 | 複數 | 全小且蛇底 | book_reviews |
| Migration | 複數 | 檔名:日期時間+蛇底 class名稱:大駝峰 | 檔名:yyyy_mm_dd_time_create_book_reviews.php class名稱:CreateBookReviewsTable |
| Controller | 單數+controller | 大駝峰 | BookReviewController |
| Seeder | 單數+Seeder | 大駝峰 | BookReviewSeeder |
| Factory | 單數+Factory | 大駝峰 | BookReviewFactory |
附註:如果你有資料表的名稱和Model不同時,記得在model裡面加入設定:protected $table = ‘books_rivews’;
Blade 命名與一致性的問題
在Blade和Controller的命名上,最好參考laravel手冊中的建議,讓route命名與blade的存放資料夾具有一致性。
例如,下面是Photo的controller (取自laravel手冊),對訂的blade就都放在photo的資料夾裡面。
| Verb | URI | Action | Route Name |
|---|---|---|---|
| GET | /photos | index | photos.index |
| GET | /photos/create | create | photos.create |
| POST | /photos | store | photos.store |
| GET | /photos/{photo} | show | photos.show |
| GET | /photos/{photo}/edit | edit | photos.edit |
| PUT/PATCH | /photos/{photo} | update | photos.update |
其他命名規則參考
如果以其他的命名規則請安考 PSR-12標準。完整的PSR-12標準可以參考:
https://www.php-fig.org/psr/psr-12/
另外,這一篇文章也說明了為什麼我們需要遵守標準來寫程式碼,直得推薦大家一看。這一篇文章裡面也有教大家,如何使用phpStorm將你的程式碼格式化,值得參考。
Why We Need Standards and How to Apply Them
以上就是今天的介紹,希望大家都可以寫出乾乾淨淨的程式碼。
參考影片:
Recent Comments