開発環境と本番環境で設定情報を使い分ける

CakePHP 1.2です。

例えばサーバから送信するメールのFromアドレスなど、開発環境と本番環境で設定情報を使い分ける場合、bootstrap.phpなどにその情報を書いておいて、開発環境と本番環境のbootstrap.phpのファイルを別管理するなどありますが、出来れば開発と本番でファイルの内容は同じにしておきたい時。


開発環境のApachehttpd.confの最後の行とか適当な場所に

SetEnv DEVELOP_ENV "dev" 

と書いておきます。こうするとPHPから読む環境変数 DEVELOP_ENVにdevという値がセットされます。後はdevという値があれば開発環境、なければ本番環境という判定をするだけです。


例えばbootstrap.phpにて、本番環境と開発環境でメールアドレスを使い分けたい場合

<?php
//開発環境の場合
//if( $_SERVER['DEVELOP_ENV'] === 'dev'){
if( env('DEVELOP_ENV') === 'dev'){
	define( 'MAIL_FROM', '開発用メールアドレス' );

}else{
//本番環境の場合

	define( 'MAIL_FROM', '本番用メールアドレス' );

}


参考
http://www.littlehart.net/atthekeyboard/2008/11/28/handling-multiple-environments-in-your-php-application/


追記
この例では$_SERVER使ってますが、Cakeで定義しているグローバル関数envを使ったほうがShellを使う場合も有効なので良いです。
http://api.cakephp.org/file/cake/basics.php#function-env