データベース設定(およびその他の構成設定)は、環境ごとに確実に設定できます。
Laravel 3の場合(Laravel4およびLaravel5の場合は以下を参照):
$environments
まず、-で定義し、次のpaths.php
ように設定する必要があります。
$environments = array(
'development' => array('*.dev'),
'production' => array('*.com'),
);
Laravelはこの変数を自動的に検索し、設定されている場合は、関連する構成を使用します。
通常、次のconfig
ような設定を持つフォルダがdatabase.php
あります。auth.php
Laravel_Env
次に、使用する予定のフォルダ(開発など)ごとに新しいフォルダを作成します。最終的には、次のようなフォルダ構造になります。
/application
/config
/development
database.php
/production
database.php
application.php
config.php
database.php
...
user_agents.php
あなたは私がdatabase.php
各サブフォルダーにのみ含まれていることに気付くでしょう。Laravelは常にデフォルトの設定を最初にロードし、次に環境設定からのカスタム設定でそれらをオーバーライドします。
最後に、開発/データベースファイルには、次のようなものがあります。
<?php
return array(
'default' => 'mysql'
);
ps Laravelの現在の3.2.12ビルドでこれをテストしたところですが、間違いなく機能します。
ボーナスのヒント: Artisanの環境を自動的に設定することもできるため、各コマンドラインに手動で環境を含める必要はありません。これをする:
Artisanを実行している「ホスト名」を知っている必要があります。調べるには-artisan.php
ルートフォルダのを一時的に編集し、2行目に追加var_dump(gethostname());
します(つまり、何よりも上に)。
php artisan
コマンドラインから実行します。ホスト名を含む文字列ダンプを取得します。私の場合、その「TSE-Win7」。
artisan.php
ファイルへの変更を削除します
ホスト名(つまり「TSE-Win7」)を環境に追加します。
最終的には次のようになります。
$environments = array(
'development' => array('*.dev', 'TSE-Win7'),
'production' => array('*.com'),
);
Artisanは、開発環境を使用して実行されます。ライブサーバーにデプロイする場合-これらの手順を再実行してサーバーのhostname()を取得すると、サーバー専用の特定の職人構成を構成できます。
Laravel 4の場合:
デフォルトの環境は常にproduction
です。ただし、start.phpファイルでは、追加の環境を定義できます。
$env = $app->detectEnvironment(array(
'local' => array('your-machine-name'),
));
LinuxおよびMacでは、ターミナルでhostname
タイプごとに決定できhostname
ます。コンピューターの名前が出力されます。Windowsではdd(gethostname());
、ファイルの先頭に配置しroutes.php
、Webサイトを1回実行すると、コンピューターの現在のホスト名が表示されます。
現在の環境をアプリケーションの変数として取得するには、このSOの回答をここで読んでください。Laravel 4:どうすれば環境価値を得ることができますか?
Laravel 5の場合:
.env
ルートディレクトリ
に呼び出される単一の構成ファイルがあります。このlaracastを見て、構成が完全に説明されています。