Laravelはコントローラやモデル、テーブルなどに対して、決められた命名ルールがあります。というか、現在のWEBシステムのフレームワークには必ず命名ルールがあります。命名ルールに従わなくても利用はできますが、記載を省略できたりするメリットがなくなるので、命名ルールには従ったほうがベターです。
このLaravel命名ルールですが、Laravel以外の開発したりしている期間が長くなるとすぐに忘れてしますので自分向けにメモします。
命名ルールとは?
プログラミングにおいて複数単語に対する記載方法としては幾つか種類があります。メジャーなものとしては、アッパーキャメル記法、ローワーキャメル記法とスネーク記法、ケバブ記法という4種類の記載方法があります。
それぞれの記載方法は以下になります。
説明 | 書き方(例) | |
アッパーキャメル記法 | 単語の先頭をすべて大文字でつなぐ | AutoComplete |
ローワーキャメル記法 | 先頭の単語だけ小文字、次からの単語は大文字でつなぐ | autoComplete |
スネーク記法 | 単語の間をアンダーバーでつなぐ | auto_complete |
ケバブ記法 | 単語の間をハイフンでつなぐ | auto-complete |
Laravelの命名ルール
Laravelの命名ルールはコントローラーやモデルごとに細かく異なります。
特にテーブル名とモデル名の命名ルールは重要です。必ずルールに従うようにしてください
テーブル名のルール
- テーブル名は小文字の複数形
- カラム名は小文字
- 単語語が複数ある場合にはスネーク記法
- リレーション先のidをカラムと紐付ける場合は【テーブル名の単数名_id】
- もし2つのテーブルの中間テーブルを作る場合は【テーブル名の単数名_テーブル名の単数名】とする
例としては従業員マスタとしてのテーブル名として【employees】、カラム名で入社日は【start_day】などになります。
もし他のテーブルとリレーションする場合には、【テーブル名の単数形_id】としてカラムを作成してください。
モデル名のルール
- モデル名はテーブル名の単数形(テーブル名によって決定される)
- 命名ルールはアッパーキャメル
例としては先ほどのテーブル名がemployeesなのでモデル名は【Employee】になります。
コントローラー名のルール
- モデルに関連する命名の場合はモデル名(複数/単数どちらでもOK)+Controller
- 命名ルールはアッパーキャメル
例として、Employeeモデルに関連するコントローラーを作成する場合は、【EmployeeController】または【EmployeesController】になります。
単数形と複数形がどちらでもいい場合にもどちらかに統一しておきましょう。
ビュー名のルール
- ブレード名はスネーク記法
- ブレード名称も複数でも単数でもよい。
例として従業員登録としてビューを作成する場合は【employees_create.blade.php】になります
マイグレーションファイルのファイル名
- マイグレーションファイルはスネーク記法
- 【create_テーブル名_table】という命名にするとartisanコマンドでマイグレーションファイルを作成したときにテーブル名が自動的にマイグレーションファイルに記載されす。
シーダーのファイル名
- アッパーキャメル記法
- 最後にSeederをつける(例としては【EmployeeSeeder】など)
ルーティングURLのルール
URLのパスをどのようにするかについてはLaravelとは関係ありません。こちらは特に正解はないのですが、複数形にするのがいいみたいですね。
【https://syachiku.net/employees/create】など
コーディング関連のルール(PSR-2)
LaravelのコーディングスタイルはPSR-2になります。
これだけだとイメージが思い描けないと思うので、もう少し具体的にLaravelで記載するクラス名やメソッド、変更などについては以下にまとめてみました。
記法 | 例 | |
クラス名 | アッパーキャメル | EmployeeList |
メソッド名 | ローワーキャメル | employeeList |
変数名 | スネーク | $employee_list |
ディレクトリ名 | アッパーキャメル | EmployeeData |
ファイル名 | スネーク | employee_data.csv |
Laravel学習にオススメな本
私はLaravelに関連する日本語の書籍はほとんど持っています。その中でもこれからLaravelを学習するのみオススメの書籍を2冊ほど紹介します。この2冊+Laravel公式サイトで理解がかなり深まるはずです。
いわゆる青本といわれているもので、Laravel初心者がまず学習をすすめるの非常にオススメです。Laravelの基本的な使いかたを順だって習得することができます。
青本が終わったあとに購入すべき書籍です。
Laravelである程度簡単なシステムが自分自身で作れる様になったLaravel中級者へオススメできる本です。青本同様に非常に分かりやすく書かれているので少し難しい内容も理解しやすいと思います。
まとめ
テーブル名やモデル名を間違って作成してしまうと、後で修正するのも結構大変なので最初に確認するようにしましょう。
特に新規でプロジェクトに参加したメンバーなどは命名ルールを知らない可能性がありますので必ず最初に情報共有しましょう。
記法 | 単数or 複数 | 記載例 | |
テーブル名 | スネーク | 複数 | employees |
モデル名 | アッパーキャメル | 単数 | Employee |
コントローラー名 | アッパーキャメル | どちらでも | EmployeesController |
ビュー名 | スネーク | どちらでも | employees_create.blade.php |
マイグレーションファイル名 | スネーク | 複数(テーブル名の部分) | xxxxx_xx_create_employees_table.php |
以上
コメント