5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel9以降で使えるルーティングの書き方

Posted at

Laravelの可読性を向上させるRoutingの書き方

Laravelのルーティングを書く際に、可読性を向上させ、不要なコントローラーを増やさない工夫をする方法を紹介します。

従来の書き方

どのバージョンでも使用できるLaravelのルートを定義する際に、以下のように記述することが多いでしょう。

Route::get('/api/version/store', 'App\Http\Controllers\Api\VersionsController@store');

この方法でも動作しますが導入しているバージョンがLaravel9以降の場合、ルートが増えていくと管理が難しくなり可読性も下がってしまいます。

可読性を向上させる書き方

次のように、Route::middlewareRoute::prefix を活用し、ルートを整理することで、可読性が向上します。

use App\Http\Controllers\User\AdminController;
use App\Http\Controllers\User\UserDetailController;

Route::middleware(['auth', 'operation', 'can:isSupport'])
    ->group(function () {
        Route::get('/user/admin/index', [AdminController::class, 'index']);
        Route::prefix('user/user_detail')
        ->controller(UserDetailController::class)
        ->group(function () {
            Route::get('/index', 'index');
            Route::post('/update', 'update');
        });
    });


この書き方のメリット

  1. 可読性の向上

    • 各ルートがグループ化されることで、どのルートがどのコントローラーを扱っているのかが一目で分かるようになります
  2. 重複コントローラーの防止

    • 似た処理をするコントローラーが増えてしまうのを防ぐことができます
    • 「このコントローラーとこのコントローラーの処理はほぼ同じでは?」と気づくことで、統一した設計が可能になります
  3. 管理しやすい構造に

    • 一番上にコントローラーを定義することで、似たような名前のコントローラーを作成してしまうのを防ぐことができます
    • ルートが整理され、全体の構造が明確になります
  4. 保守性の向上

    • コードが整理されることで、新しいメンバーがプロジェクトに参加した際にも理解しやすくなります
    • 変更が発生した場合も影響範囲が明確になり、修正が容易になります
  5. セキュリティの強化

    • Route::middleware を活用することで、特定のルートに認証や権限チェックを組み込むことができます
    • これにより、管理画面や機密情報に関わるルートのアクセス制御が簡単に実装できます

その他の便利な書き方

Route::resource を活用する

RESTfulなルーティングをシンプルに記述する場合、Route::resource を使用するのも有効です。

use App\Http\Controllers\UserController;

Route::resource('users', UserController::class);

これにより、index, show, create, store, edit, update, destroy の7つのアクションが自動的にルートに紐づきます。

APIルートの整理

APIルートをグループ化して管理する場合、以下のように Route::prefix('api') を利用すると見やすくなります。

Route::prefix('api')->group(function () {
    Route::get('users', [UserController::class, 'index']);
    Route::post('users', [UserController::class, 'store']);
});

まとめ

Laravelのルーティングを整理することで、コードの可読性を向上させ、管理のしやすい構造を作ることができます。特に、Route::middlewareRoute::prefixRoute::controller などを活用することで、グループ化して見やすくするのがおすすめです。

また、Route::resourceAPIルートの整理 などのテクニックを活用することで、さらに効率的で保守性の高いルート設計が可能になります。

ぜひ、実際のプロジェクトで試してみてください!

5
4
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
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?