Laravel

Laravelの命名ルール(TableやModel,Controllerなど)【実は結構重要】

Laravel

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】など

https://laracasts.com/discuss/channels/laravel/naming-uri-resources-with-two-words

コーディング関連のルール(PSR-2)

LaravelのコーディングスタイルはPSR-2になります。

PSR-2 コーディングガイド(日本語)|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

これだけだとイメージが思い描けないと思うので、もう少し具体的に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

以上

コメント