Laravel4、DBを環境変数から設定する
タグ: Laravel4
Laravel.ioはLaravel公式のコミュニティーサイトです。
そこで、Laravelに関して、何かを教えることができる人を募っていました。まあ、簡単なことから、複雑なことまであるわけですが、ある程度人数が集まりました。
そして、Laravelでチューターと言えば、Jeffery Way氏が、新しいサイトを作成し、ビデオチュートリアルを主にしたサービスを開始しました。laracast.comです。
有料ビデオは月間9ドルです。もうちょっとビデオが溜まってから見たほうがお得かと思います。ただし、いまサービスに申し込むと、Jeffreyさんが書いたLaravelに関するテストの本、"Testing Decoded"が無料でもらえます。ただし、英語オリジナル版です。
そこで、最初の無料ビデオで使用しているテクニックを紹介します。実は、Laravelに関わらず、他のフレームワークでも良く使われる方法です。
サーバー上に乗っかっている状態で、DBの切り替えに設定ファイルをいちいち変更したくない場合や、Paasであれば、ローカルで編集したものをデプロイするより、環境変数を設定するほうが手間がかからない場合であれば、DBの名前、ユーザー、パスワードなどを環境変数に設定しておき、それを取り込むことができます。
方法は簡単で、app/config/database.php、もしくは環境に合わせたdatabase.phpの内容を以下のように書き換えるだけです。
'connections' => array( 'mysql' => array( 'driver' => 'mysql', 'host' => 'localhost', 'database' => getenv('DB_NAME'), 'username' => getenv('DB_USER'), 'password' => getenv('DB_PASSWORD'), 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ), ),
後は、環境変数を設定するのをお忘れなく。