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

Tags: codeigniter, codeigniter4