知っておくべき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_case | users.show_active | users.show-active, show-active-users |
モデル | 単数形 | User | Users |
hasOneまたはbelongsToの関係 | 単数形 | postComment | postComments, post_comment |
他のすべての関係 | 複数形 | postComments | postComment, post_comments |
テーブル | 複数形 | post_comments | post_comment, postComments |
ピボットテーブル | アルファベット順の特異なモデル名 | post_user | user_post, posts_users |
モデルのプロパティ | スネークケース | $model->created_at | $model->createdAt |
外部キー | _id接尾辞を持つ特異なモデル名 | post_id | PostId, id_post, posts_id |
主キー | – | id | custom_id |
マイグレーション | – | 2019_05_08_000000_create_posts_table | 2019_05_08_000000_posts |
メソッド | キャメルケース | getAll | get_all |
リソースコントローラーのメソッド | テーブル | store | savePost |
変数 | キャメルケース | $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. 私用していないプラグインを外す
多くの不要なプラグインが存在する場合は、これらのプラグインを削除するべきです。さらに、未使用のプラグインは、開発者が既存の機能を妨げることなく簡単に無効にできます。