LoginSignup
8
9

More than 5 years have passed since last update.

FuelPHP で modules 利用時の config 設定について整理

Last updated at Posted at 2015-01-29

FuelPHP で modules 利用時の config 設定

一度、config まわりを理解してしまえば当然という設定方法ですが、上記ドキュメントを読んだだけでは、スムーズにいかずあれこれ試したので、ここで備忘録的に整理しておきます。

今回は、特に DB まわりの設定です。DB は複数利用します。

やりたいこと

  • app とは別に共通利用したい platform モジュールを分割
  • app で利用する db の設定は、通常通り app/config/db.php や app/config/(環境)/db.php で管理
  • module で利用する db の設定は、通常通り module/platform/config/db.php や module/platform/config/(環境)/db.php で管理
  • 上記設定状態で、通常通り app 内で app 用 DB にアクセス、module 内で module 用 DB にアクセス
  • イメージとしては、組み込んだ共通モジュール platform の設定を app の config/config.php に設定するだけで問題なく利用できる。

設定方法(modules 側)

app の config と同じルールで module/platform/config 配下を設定します。

設定方法(app 側)

app/config/config.php で下記設定をします。(ここが重要でした。。。)

'always_load' => array(

'modules' => array
'platform'
),
'config' => array(
'platform::db' => 'db',
),
),

DB 利用方法

  • 参考

  • app 側 DB 設定名(connection名)が 'mysql_app' の場合

    $result = DB::query('SELECT * FROM users', DB::SELECT)->execute('mysql_app');

  • app 側 DB 設定名(connection名)が 'mysql_platform' の場合

    $result = DB::query('SELECT * FROM users', DB::SELECT)->execute('mysql_platform');

まとめ

最初、config の設定で「'platform::db' => 'db',」とdb スペースに突っ込むことに気がつかず、ソース読んだりして config の読み込みまわりを理解して解決しました。config 設定場所にもこう設定するようにと例は書いてあったのですが、modules に分割してしまって、自分の中で混乱していたようです。スマートに設定できて良かったです。

8
9
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
8
9