[symfonyの4.3]は、サイトのメンテナンスモードを作成します

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の場合、それはユーザーにページを返し、その後、他のイベントを終了します。

 

おすすめ

転載: www.cnblogs.com/novice-programmer/p/11609388.html