2009-06-15 14 views
2

私は、データベースや何かをアップグレードしているときにZend Frameworkの保守/保守中のページを設定する方法を理解しようとしています。 。私は、静的なHTMLページを持って、すべてのトラフィックをそれにリダイレクトしたいと思います。Zend Framework「保守中」ページ

私はむしろ.htaccessを使用したくないので、ブートストラップファイルでやりたいと思います。

アイデア?

ありがとうございました。

答えて

1

設定ファイルでmaintenance_modeスイッチを確認し、ブートストラップ内のすべての要求を静的なHTML管理ページにリダイレクトできます。

2

これは、ページがリクエストされるたびにリクエストの有効性をチェックするプラグインを作成することで行いました。

"preDispatch()"でプラグインを実行している間は、現在のステータスをアクティブ/メンテナンスとして保持し、要求を元の送り先に転送するか、この目的のためのリンク先ページ。

私は(ZFをブートストラップ)のindex.phpに優先してindex.htmlをを表示するようにApacheを設定した

public function preDispatch(Zend_Controller_Request_Abstract $request) 
{ 
    // get your user and your config 
    if($config->suspended && $user->role()->name != "admin"){ 
     $request 
      ->setModuleName('default') 
      ->setControllerName('index') 
      ->setActionName('suspended') 
      ->setDispatched(true) 
     ; 
    } 
} 
+0

私はあなたに興味があるあなたはthis.thanks –

+0

@blackの先生に少し手の込んだことができElzoに近づくが、私は –

2

コードサンプル。 /index.phpに直接リンクしない限り、index.htmlファイルにドロップするだけでZFサイトより優先して表示されます。 (

if ($config->maintenance) { 
    readfile(APPLICATION . '/../public/maintenance.html'); 
    exit; 
} 

あなたは、特定のIPアドレスのためにそこに別のチェックを追加することもできます。

代替は、設定を読んだことがあるとすぐにあなたの設定.iniファイル内のエントリを持っている、としていますあなた自身も)他の誰もがブロックされているときでもあなたが得ることができるように。

0

dispatchLoopShutdown()のプラグインを使用し、設定の設定に基づいて、必要なコントローラにリクエストをリダイレクトします。

1

私はこれを行う方法を示すブログ記事を持っています。 Setting up a maintenance page with Zend Framework

+0

@WebinarsatZendはすでにあなたのブログ投稿http://twitter.com/WebinarsatZendについてつぶやくた追加したことのコード例を参照してください/状態/ 12526221389 – tawfekov

0

私はZend 1.12のTEEにこれらの提案をすべて従っています。私は周りをグーグルで調べた。 Zend_Loader_PluginLoaderを使用して、zend_loader_autoloader_resource()を使用してapplication.iniを使用してプラグインパスを設定しようとしました。これらのうちのどれも私のために働かなかった。私は.htaccessを書くことになりました:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/maintenance\.php$ 
RewriteRule ^(.*)$ /maintenance.php [R=503,L] 

これは、Zendが最悪のフレームワークである理由です。何か簡単なことをするためのさまざまなオプションの数多くのオフィシャル・ドキュメンテーションは、あいまいで不明確です。誰も正しいことを理解することはできません。何かを行う正しい方法を説明できないので、時間を無駄にしてしまいます。