「Laravel - ルーティング」の版間の差分
ナビゲーションに移動
検索に移動
31行目: | 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'));
});
}
}