Silex マイクロフレームワークhttp://silex.sensiolabs.org/documentationで kernel.request イベントをリッスンしたい
どのように ?
Silex マイクロフレームワークhttp://silex.sensiolabs.org/documentationで kernel.request イベントをリッスンしたい
どのように ?
ディスパッチャー サービスには as としてアクセスでき、その使用方法はこちらで$app['dispatcher']
確認できます。しかし、Silex のイベントも呼び出されるので、代わりに使用する必要があると思います(使用方法の良い例を次に示します)。before
kernel.request
アップデート:
上記のリンクは古くなっています。フィルターが新しいミドルウェア セクションに移動する前に、次のように記述できます。
$app->before(function (Request $request) {
// do what you want ...
// if you want you can return a response so the controller won't be called
// return new Response($content);
// or just return null
});
Silexミドルウェアの ドキュメントによると:
Silex を使用すると、ミドルウェアを介したリクエスト処理中のさまざまな段階で、デフォルトの Silex の動作を変更するコードを実行できます。
アプリケーション ミドルウェアは、マスターリクエストに対してのみ実行されます。
アプリケーションミドルウェアの前に、コントローラーが実行される前にリクエストを微調整できます。
$app->before(function (Request $request, Application $app) {
// ...
});
デフォルトでは、ミドルウェアはルーティングとセキュリティの後に実行されます。
早い段階で例外がスローされた場合でも(たとえば、404 または 403 エラーで)ミドルウェアを実行したい場合は、それを早期イベントとして登録する必要があります。
$app->before(function (Request $request, Application $app) {
// ...
}, Application::EARLY_EVENT);
この場合、ルーティングとセキュリティは実行されていないため、、、または にアクセスできません。locale
current route
security user