CodeIgniter4のモジュール(HMVC)内の設定ファイルとヘルパーの呼び出し方
動作確認環境
- CodeIgniter 4.1.6-dev (4.1.5)
設定ファイル
new する
これが、基本でシンプルです。モジュールにある設定ファイルを確実にロードできます。
$config = new \Acme\Blog\Config\Blog();
config() 関数
config()
関数にクラス名を指定することもできます。
config()
の実体は Factories::config()
です。
$config = config(\Acme\Blog\Config\Blog::class);
しかし、app/Config/Blog.php
が存在するとそちらがロードされます。
バグでしょうか?いいえ、これは Factories
のデフォルト(app/
が優先される)とのことです。
(2023-08-17 追記)
この完全修飾クラス名を指定しても App
名前空間にあるクラスがロードされるという、わかりづらい振る舞いは、
v4.4.0 から変更される予定です。デフォルトでは指定したクラスがロードされるようになります。
短いクラス名のみでも指定できます。
$config = config('Blog');
これも、app/Config/Blog.php
が存在するとそちらがロードされます。
ヘルパー
ヘルパー名(ファイル名から _helper.php
を削除したもの)を指定します。
helper('blog');
app/Helpers/blog_helper.php
が存在するとそちらがロードされます。
名前空間風のヘルパー名(名前空間+ヘルパー名)を指定することもできます。
helper('Acme\Blog\blog');
名前空間に Helpers
を入れてもロードされました。
helper('Acme\Blog\Helpers\blog');
関連
参考
Date: 2021/11/29