cakephperの日記(CakePHP, MongoDB) Twitter


PHPMatsuri2011開催決定! 10/15(sat), 16(sun) 大阪。
http://2011.phpmatsuri.net/

2008-12-22

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

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', '本番用メールアドレス' );

}

参考

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

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証