1

Zend_Config_Ini アダプターを使用して構成を定義し、運用、開発、およびテストのセクションを作成しました。私のコントローラーでは、現在使用している環境/セクションに応じて特定のアクションを実行したいと考えています。たとえば、開発ではなく、本番およびテストでのみメールを送信したいです。

コントローラーを使用している環境/セクションを特定する方法はありますか? config で値を設定してコントローラーでそれを取得することはできますが、より明確に判断する方法があるようです。

4

2 に答える 2

2

次のように、環境に依存するコードをコントローラーに配置した場合:

if ($env == 'production') {
    // send mail
}

これにより、コントローラーにロジックが追加されます。メールの送信は、構成に依存しなくなります。


mail.enableメールを送信する必要があるかどうかを判断するには、構成ファイルに 1つのオプションを追加し、その特定のオプションをコードで使用する方がよいと思います。
こちらです :

  • 構成は、メールを送信するかどうかを定義する構成です。
  • 開発環境からメールを送信したい日は、構成ファイルの1つのエントリを変更するだけです。コードではありません。


もちろん、これはさらに2つの構成エントリを意味します(1つは電子メールを有効/無効にするためのもの、もう1つは有効にすることができるかどうかに関係なく使用するためのものです)。しかし、結局のところ、それが構成の目的です。

于 2011-03-13T19:13:32.467 に答える
2

ZF クイック スタートに従い、コマンド ライン ツールを使用してプロジェクトをセットアップすると、使用できる APPLICATION_ENV という定数が得られます。

例えば

if(APPLICATION_ENV == "development")
{
  // custom logic here
}

これは、パブリック フォルダーの index.php ファイルで定義されています。

// Define application environment
defined('APPLICATION_ENV')
                || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
于 2011-03-13T19:25:03.290 に答える