4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelの命名規則まとめ!

Last updated at Posted at 2023-03-13

はじめに

Laravelには、コントローラー、モデル、ビューなどの要素があり、それぞれに命名規則があります。また、Laravelはコーディング規約のPSR-1やコーディングスタイルのPSR-2に基づいた命名規則を採用しています。この記事では、Laravelの命名規則についてまとめていきます。

Laravelの命名基本ルール

1. コントローラーの命名規則

コントローラーは、クラスで実装されます。コントローラーのクラス名は、以下のルールに従う必要があります。

  • 単数形のパスカルケースで記述する。
  • 「Controller」という接尾語を付ける。

また、一般的にコントローラー名には、アプリケーションのドメイン知識に関する単語を使用することが推奨されます。例えば、ECサイトの場合はProductControllerCartControllerなどが該当します。

ProductController.php
class ProductController extends Controller
{
    //
}

2. モデルの命名規則

モデルは、データベースとのやりとりを担当するクラスです。モデルのクラス名は、以下のルールに従う必要があります。

  • 単数形のパスカルケースで記述する。

また、モデル名はテーブル名と一致するようにすることが推奨されます。例えば、product_namesテーブルに対応するモデルの場合はProductNameといった具合です。

ProductName.php
class ProductName extends Model
{
    //
}

リレーションの命名規則と記述方法

リレーションは種類に応じて、適切な記述方法を行います。例えば、belongsToリレーションであれば、メソッド名を単数形のモデル名として定義します。

Product.php
public function user(): BelongsTo
{
    return $this->belongsTo(User::class);
}

また、hasManyリレーションであれば、posts()のようにメソッド名を複数形のモデル名として定義します。

User.php
public function products(): HasMany
{
    return $this->hasMany(Product::class);
}

3. マイグレーションファイルの命名規則

マイグレーションファイルは、データベースのテーブル構造を定義するためのファイルです。マイグレーションファイルのファイル名は、以下のルールに従う必要があります。

  • 「create_テーブル名_table」という形式で記述する。
  • 「xxx」の箇所には作成日時が入る。

例えば、「users」というテーブルを作成する場合は、以下のようにファイル名を記述します。

xxx_create_users_table.php

4. ビューの命名規則

ビューは、HTMLなどの表示用のファイルです。ビューのファイル名は、以下のルールに従う必要があります。

  • ドットで区切られた単数形のスネークケースで記述する。
  • ビューファイルの拡張子は「.blade.php」とする。

また、コントローラーと対応するビューの場合は、コントローラー名に対応したビュー名にすることが一般的です。例えば、UserControllerに対応するビューの場合はuser.blade.phpと命名します。

resources/
        views/
            user/
                user.blade.php

5. ルーティングの命名規則

ルーティングは、URLとコントローラーのアクションを紐付けるための設定です。ルーティングの名前は、以下のルールに従う必要があります。

  • スネークケースで命名する。
  • ルート名には、.(ドット)を使用する。

例えば、「Product」というコントローラーの「index」アクションに対応するルートがある場合は、以下のようにルートの名前を記述します。

web.php
Route::get('products', [ProductController::class, 'index'])->name('product_name.index');

まとめ

Laravelには、コントローラー、モデル、マイグレーションファイル、ビュー、ルーティングなど、様々な要素があります。命名規則は、プロジェクトのメンテナンス性や拡張性を高めるための重要な要素の1つですので、参考になれば幸いです。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?