Laravelにおけるファイルやデータの命名規則は、
PSR(PHP Standards Recommendations)に準拠しつつ、
Laravel独自のルールが適用されます。
以下のような命名規則があります。
1. ファイル・クラスの命名規則
コントローラー
PascalCase(単語の先頭を大文字)Controllerサフィックスをつける
prefix_hoge_suffix
前に付けばプレフィックス(接頭辞)、後に付けばサフィックス(接尾辞)- 例:
UserController.php,ProductController.php
モデル
PascalCase(単語の先頭を大文字)- 単数形
- 例:
User.php,Order.php
リクエスト
PascalCase(単語の先頭を大文字)Requestサフィックスをつける- 例:
StoreUserRequest.php,UpdateProfileRequest.php
ミドルウェア
PascalCaseMiddlewareサフィックスは不要- 例:
CheckAdmin.php,Authenticate.php
イベント
PascalCase- 動詞 + 名詞の形式が一般的
- 例:
UserRegistered.php,OrderShipped.php
リスナー
PascalCaseListenerサフィックスは不要- 例:
SendWelcomeEmail.php
ジョブ
PascalCase- 例:
ProcessPayment.php,SendNotification.php
ポリシー
PascalCasePolicyサフィックスをつける- 例:
UserPolicy.php,PostPolicy.php
ファクトリー
PascalCaseFactoryサフィックスをつける- 例:
UserFactory.php,OrderFactory.php
シーダー
PascalCaseSeederサフィックスをつける- 例:
UsersTableSeeder.php,OrdersTableSeeder.php
マイグレーション
snake_case(スネークケース)+yyyy_mm_dd_hhmmss(タイムスタンプ)create_X_tableの形式- 例:
2024_03_12_123456_create_users_table.php
2. データベースの命名規則
テーブル名
snake_case(スネークケース)- 複数形 (マイグレーションで作成のテーブル名は複数形)
- 例:
users,orders,products
カラム名
snake_case- 例:
first_name,order_status,created_at
リレーションの外部キー
snake_case+_id- 例:
user_id,product_id
中間テーブル
- アルファベット順に2つのテーブル名を結合
- 例:
role_user,category_product
タイムスタンプ
created_at,updated_atをデフォルトで使用- 削除フラグには
deleted_at(ソフトデリート時)
3. ルートの命名規則
APIルート
snake_caseではなく ケバブケース(kebab-case)- 例:
/api/users/{id},/api/products/{product}/reviews
コントローラーのメソッド
camelCaseindex→ 一覧取得show→ 詳細取得store→ 新規作成update→ 更新destroy→ 削除
4. その他の命名規則
設定ファイル
snake_case.php- 例:
database.php,mail.php
環境変数(.env)
UPPER_SNAKE_CASE- 例:
DB_HOST=127.0.0.1,APP_DEBUG=true
まとめ
- クラス名は
PascalCase - メソッド名は
camelCase - テーブル・カラム名は
snake_case - ルートURLは
kebab-case - 環境変数は
UPPER_SNAKE_CASE
Laravelの規約に沿うことで、可読性や統一性が向上し、開発がスムーズになります!


