symfonyフレームワークのメンテナンスモードを通じてサイトを作成することは非常に簡単です。ちょうどその時、サイトがメンテナンスモードになっているかどうかを確認するために、ユーザによって要求されました。メンテナンスモードを起動すると、すべての要求が生じたページにリダイレクトされます。
これはonKernelRequestのEventListenerの中で行うことができます。
1 <?PHP 2 3。 ネームスペースアプリケーション\のEventListener A; 4 5。 6。 クラスMaintenanceListener 7。 { 10 パブリック 関数 onKernelRequest(は、RequestEvent $イベント) 11 { 12れる // ロジックがここに入れて 13 } 14 }
あなたのMaintenanceListenerを登録し、その後、新しいパラメータを作成するService.yaml:
パラメータ: メンテナンス:真 のサービス: アプリケーション\のEventListener \ MaintenanceListener: タグ: - {名:kernel.event_listener、イベント:カーネル。リクエスト} 引数: $メンテナンス: '%メンテナンス%'
メンテナンスは、メンテナンスモードスイッチで値を維持することは、$メンテナンス変数への結合、およびコンストラクタ内MaintenanceListenerにそれを置きます:
<?PHPの 名前空間のApp \のEventListener。 使用のSymfony \コンポーネント\ HttpFoundation \レスポンスを。 使用のSymfony \コンポーネント\ HttpKernel \イベント\は、RequestEventを。 使用小枝\環境を。 クラスMaintenanceListener { プライベート $のメンテナンス; プライベート $小枝。 パブリック 関数 __construct($メンテナンス、環境$小枝) { $この - >メンテナンス= $メンテナンス。 $この - >小枝= $小枝。 } 公共の 機能onKernelRequest(は、RequestEvent $イベント) { 場合($これ! - >メンテナンス= 真) { リターン。 } $イベント - >はsetResponse(新しい応答($この - > twig->レンダリング( 'maintenance.html.twig')、応答:: HTTP_SERVICE_UNAVAILABLE)); $イベント - > のstopPropagation(); } }
サイトは、ユーザーの要求を受信すると、それはでonKernelRequest入力して、メンテナンスが真であるかどうかを確認します。メンテナンスがtrueの場合、それはユーザーにページを返し、その後、他のイベントを終了します。