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'    => '',
        ),
    ),

後は、環境変数を設定するのをお忘れなく。