5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[FuelPHP] 環境によってDBの接続先を切り替える

Posted at

FuelPHPを使った場合に、DBの接続先を環境によって切り替えたい場合の設定方法。

##やりたいこと
環境毎に接続先サーバ、DBの設定を切り替える。

##対処
1.ドメインに応じて、読み込むdb.phpファイルを切り替える。
/fuel/app/bootstrap.phpを編集

bootstrap.php
switch (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : ''){
    case 'production.co.jp':
        //本番
        Fuel::$env = Fuel::PRODUCTION;
        break;
    case 'staging.co.jp':
        //テスト環境 
        Fuel::$env = Fuel::STAGING;
        break;
    default:
        //ローカル環境
        Fuel::$env = Fuel::DEVELOPMENT;
        break;
}

Fuel::PRODUCTIONなどは、読み込むDB設定ファイルの場所に関連する。

2.db.phpの修正
/fuel/app/config/配下に
/development/
/production/
/staging/
のディレクトリがあるので、それぞれを対応する環境用に修正する。
上記、bootstrap.phpにあわせると、

ローカル環境→/development/
テスト環境→/staging/
本番環境→/production/

db.php
return array(
    'dbname' => array(
        'connection'  => array(
            'dsn'        => 'mysql:host=localhost;dbname=dbname',
            'username'   => 'username',
            'password'   => 'password',
        ),
    )
);

コンフィグファイル、各値の取得は以下

\Fuel\Core\Config::load('db');
$pdo_config = \Fuel\Core\Config::get('dbname');
$pdo_username = $pdo_config['connection']['username'];
$pdo_password = $pdo_config['connection']['password'];

以上

5
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?