ハマログ

株式会社イーツー・インフォの社員ブログ

Laravel4で環境ごとにconfigを読みかえる

今、あるサイトをLaravelで開発しているんですが、いざデプロイの段階となりますと、DBの接続先やらなにやらの各種設定を、デプロイ先ごとに分けたくなります。

まあデプロイ時のたびに書き直せばいいわけですが、できる限り手間は省きたいと思うのが人情というものです。

主要なフレームワークは、デプロイ環境ごとに設定を分ける仕組みを持っているものでして、Laravelも当然その仕組みがデフォルトでついてきます。

Laravelではデフォルトのconfigディレクトリの中に任意の名前でディレクトリを作り、その中に設定ファイルを置く形で設定を分けることになります。

config

上の画像で言えば「dev」ディレクトリと「local」ディレクトリがそれにあたるわけです。

こいつらを実行時に読み込ませるようにするには、さらにbootstrap/start.phpで

$env = $app->detectEnvironment(array(

	'local' => array('local-machine-name'),
	'dev'   => array('dev-machine-name'),

));

と編集してやるそうです。(詳しくは下記URL)

http://blog.uklab.jp/web/change-detectenvironment-laravel4-1/

(今回の案件では別の方法をとっていますけど)

ちなみに、migrationとかdb:seedを普通に実行すると、configディレクトリ直下のdatabase.phpを読みに行ってしまいます。

したがって、環境毎にこれらの操作を行うときには、artisanコマンドにオプションをつけて実行します。

[migration]
php artisan --env=[環境名] migrate

[db:seed]
php artisan --env=[環境名] db:seed

こんな感じです。
Laravel

  Shin.A   2014年3月5日


関連記事

MariaDBのVARCHAR(10)には何文字格納できるでしょうか?

こう聞かれれば「半角10文字、全角5文字」と答える人が多いのではないでしょうか。…

CocoaPodsでiPhoneアプリ用のライブラリを管理する

RubyのRubyGem, PHPのcomposer, JavaのMavenなど…

テスト設計技法について

どうもーyasuです~ アイコン変わりました! 前回、もうちょっと技術的なことも…


← 前の投稿

次の投稿 →