知っておくべきLaravelのベストプラクティス TOP10

知っておくべきLaravelのベストプラクティス TOP10

1. 最新バージョンを使用する

最新の安定バージョンを使用している場合、安全で高性能なWebソリューションを利用できます。最新のLaravelのバージョンで作業することをお勧めします。

2. Bladeの中にクエリーを含めない

Bladeの中でクエリを発行した場合、100件の投稿を取得するのに101回DBにクエリを発行してしまいます。

@foreach (Post::all() as $post)

{{ $post->category->name }}

@endforeach

コントローラーなどでクエリを発行すれば、100件の投稿をたったの2回のクエリの発行で済みます。

$posts = Post::with(‘category’)->get();

...

@foreach ($posts as $post)

{{ $post->category->name }}

@endforeach

3. Eloquent Ormを使用する

Eloquent ORMは最も強力な機能の1つであり、1つのクエリでエンドユーザーに表示されるデータを抽出するために使用されます。これは、laravelで開発するベストプラクティスの1つであり、モデルの命名規則に注意することです。Eloquent ORMは、クエリ部分の最適化にも取り組んでいます。

4. 命名規則に従う

命名規則は、PSR-2やPSR-4の推奨基準に従うべきです。

何を規則推奨非推奨
コントローラ単数形PostController
PostsController
ルート複数形posts/1
post/1
名前付きルート
ドット表記のsnake_caseusers.show_active
users.show-active, show-active-users
モデル単数形UserUsers
hasOneまたはbelongsToの関係単数形postCommentpostComments, post_comment
他のすべての関係
複数形postCommentspostComment, post_comments
テーブル複数形post_commentspost_comment, postComments
ピボットテーブルアルファベット順の特異なモデル名post_useruser_post, posts_users
モデルのプロパティスネークケース
$model->created_at$model->createdAt
外部キー_id接尾辞を持つ特異なモデル名
post_idPostId, id_post, posts_id
主キーidcustom_id
マイグレーション2019_05_08_000000_create_posts_table2019_05_08_000000_posts
メソッドキャメルケース
getAllget_all
リソースコントローラーのメソッドテーブルstoresavePost
変数キャメルケース
$postsWithAuthor
$posts_with_creator

5. Artisanコマンドラインインターフェイスを使用する

Laravelには、Artisanと呼ばれる独自のコマンドラインインターフェイスがあります。Artisan CLIは開発プロセスにプラスの影響を与えるため、最大限に活用することをお勧めします。アプリケーション開発プロセスを高速化するためのさまざまな便利なコマンドを提供します。

6. オートロードを使用する

Laravelでは、クラスまたは単純なPHPコードに対してオートロードが使用できます。これにより、PHPがファイルが既にロードされているかどうかをチェックしないため、スクリプトのパフォーマンスが向上します。

7. マイグレーションを使用する

マイグレーションを使用することは、システムの以降などを考慮するとプログラマがWebソリューションを作成するのに役立つ、もう1つの重要なポイントです。DBの移行は、テーブルの構築、フィールドの追加および変更に使用できます

8. バリデーション

バリデーションをコントローラーからクラスに移動させます。

非推奨

public function store(Request $request)
{
    $request->validate([
        'title' => 'required|unique:articles|max:255',
        'body' => 'required',
        'publish_at' => 'nullable|date',
    ]);
}

推奨

public function store(ArticleRequest $request)
{

}

class ArticleRequest extends Request
{

    public function rules()
    {
        return [
            'title' => 'required|unique:articles|max:255',
            'body' => 'required',
            'publish_at' => 'nullable|date',
        ];
    }

}

9. アセットファイルをコンパイルする

すべてのアセットを異なるファイルに保存することは、開発段階にあるときに実際に役立つことがわかります。Laravel Mixはビルドパッケージに含まれており、アセットのコンパイルに使用できます。また、さまざまなサードパーティのパッケージも利用できます。

10. 私用していないプラグインを外す

多くの不要なプラグインが存在する場合は、これらのプラグインを削除するべきです。さらに、未使用のプラグインは、開発者が既存の機能を妨げることなく簡単に無効にできます。

翻訳元サイト