「Laravel - ルーティング」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == <br><br> == webミドルウェアグループ == webミドルウェアグループは、LaravelのWebインターフェース向けの重要な基本機能をまとめたミドルウェアのセットである。<br> <br> webミドルウェアには、以下に示す機能が含まれている。<br> * セッション状態の開始 * StartSessionミドルウェアにより、ユーザセッションの開始と管理を行う。 *: <br> * CSRF保護…」)
 
 
(同じ利用者による、間の1版が非表示)
8行目: 8行目:
webミドルウェアには、以下に示す機能が含まれている。<br>
webミドルウェアには、以下に示す機能が含まれている。<br>
* セッション状態の開始
* セッション状態の開始
*: <br>
* StartSessionミドルウェアにより、ユーザセッションの開始と管理を行う。
* StartSessionミドルウェアにより、ユーザセッションの開始と管理を行う。
*: <br>
*: <br>
30行目: 31行目:
<br>
<br>
APIルートの場合は代わりにapiミドルウェアグループを使用して、セッション等の必要の無い軽量な構成を適用することができる。<br>
APIルートの場合は代わりにapiミドルウェアグループを使用して、セッション等の必要の無い軽量な構成を適用することができる。<br>
<br>
<syntaxhighlight lang="php">
// Laravelで新しいルートファイル (hoge.php) を作成して独自のルーティングを設定する例
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Route;
class RouteServiceProvider extends ServiceProvider
{
    public function boot()
    {
      $this->routes(function () {
          Route::middleware('web')
            ->group(base_path('routes/web.php'));
          // 新しいルートファイルを追加
          Route::middleware('web')
            ->group(base_path('routes/hoge.php'));
      });
    }
}
</syntaxhighlight>
<br><br>
<br><br>



2024年11月30日 (土) 21:19時点における最新版

概要



webミドルウェアグループ

webミドルウェアグループは、LaravelのWebインターフェース向けの重要な基本機能をまとめたミドルウェアのセットである。

webミドルウェアには、以下に示す機能が含まれている。

  • セッション状態の開始

  • StartSessionミドルウェアにより、ユーザセッションの開始と管理を行う。

  • CSRF保護
    VerifyCsrfTokenミドルウェアにより、クロスサイトリクエストフォージェリ (CSRF) 攻撃からアプリケーションを保護する。
    フォーム送信時のCSRFトークンの検証を行う。

  • クッキーの暗号化
    EncryptCookiesミドルウェアにより、クッキーの自動暗号化・復号化を行う。

  • アプリケーション状態の共有
    ShareErrorsFromSessionミドルウェアにより、ビューでエラーメッセージを利用できるようにする。
    セッションデータをビューと共有する。

  • メンテナンスモード検出
    CheckForMaintenanceModeミドルウェアにより、アプリケーションがメンテナンスモード時の処理を行う。


これらのミドルウェアは、app/Http/Kernel.phpのwebミドルウェアグループに定義されている。
つまり、Route::middleware('web')と指定することにより、通常のWebアプリケーションで必要となる基本的なセキュリティと機能のセットを一括して適用できる。

webミドルウェアグループを使用しない場合、セッション管理やCSRF保護などの機能が使えなくなるため、一般的なWebアプリケーションのルートでは常にこのミドルウェアグループを指定することが推奨されている。

APIルートの場合は代わりにapiミドルウェアグループを使用して、セッション等の必要の無い軽量な構成を適用することができる。

 // Laravelで新しいルートファイル (hoge.php) を作成して独自のルーティングを設定する例
 
 namespace App\Providers;
 
 use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;
 use Illuminate\Support\Facades\Route;
 
 class RouteServiceProvider extends ServiceProvider
 {
    public function boot()
    {
       $this->routes(function () {
          Route::middleware('web')
             ->group(base_path('routes/web.php'));
 
          // 新しいルートファイルを追加
          Route::middleware('web')
             ->group(base_path('routes/hoge.php'));
       });
    }
 }