4

私は自分のCakePHPアプリケーションでは多くの環境、CakePHPの異なる環境は?

を持っており、それぞれの環境にcore.phpのファイルを持っている、すなわち、

コアproduction.phpとコアdevelopment.phpたいです。それを管理する方法は?

+0

プロダクションファイルと開発ファイルの違いは何ですか?私は同じcore.phpから管理しています。 – Wylie

+0

@Wylie設定値の選択を自動化し、エラーの可能性を減らし、単調な労力を軽減します。 –

答えて

3

私が正しく理解していれば、それぞれの場所ごとに異なる設定をロードしようとしています。これを管理する最善の方法は、サーバーの場所に基づいてcustom configurationsを設定することです。

これを行うには、サーバー名を確認するcustom.php構成を作成します。

$domain = strtolower(@$_SERVER['SERVER_NAME']); 
switch (true) { 
    default: 
    case 'production.domain.com' == $domain: 
    Configure::write('MyDomain.environment', 'production'); 
    break; 

    case 'staging.domain.com' == $domain: 
    Configure::write('MyDomain.environment', 'staging'); 
    break; 

    case 'local.domain.com' == $domain: 
    case 'mybox.com' == $domain: 
    Configure::write('MyDomain.environment', 'local'); 
    break; 
} 

さて、コアでは、ご使用の環境に基づいて設定を行うことができます。

switch (Configure::read('MyDomain.environment')) { 
    default: // for security; wouldn't want any confusion revealing sensitive information 
    case 'production': 
    Configure::write('debug', 0); 
    break; 

    case 'staging': 
    case 'local': 
    Configure::write('debug', 2); 
    break; 
} 

今、あなたはCakePHPのコアファイルを読み込む方法を変更することなく、Configure::write('MyDomain.environment', x)を使用して任意の場所にすべてを設定することができます。

ハッピーコーディング!

+1

それは今まで見たことのある文字列を切り替える最良の方法です。 –

関連する問題