開発環境と本番環境で設定情報を使い分ける
CakePHP 1.2です。
例えばサーバから送信するメールのFromアドレスなど、開発環境と本番環境で設定情報を使い分ける場合、bootstrap.phpなどにその情報を書いておいて、開発環境と本番環境のbootstrap.phpのファイルを別管理するなどありますが、出来れば開発と本番でファイルの内容は同じにしておきたい時。
開発環境のApacheのhttpd.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', '本番用メールアドレス' ); }
追記
この例では$_SERVER使ってますが、Cakeで定義しているグローバル関数envを使ったほうがShellを使う場合も有効なので良いです。
http://api.cakephp.org/file/cake/basics.php#function-env