やりたいこと
CakePHP3は、
[PROJECT]
└ src/
└ Controller/
└ Component/
├ HogeComponent.php
├ FugaComponent.php
├ FugoComponent.php
├ ...
のように、コンポーネントをComponentフォルダ配下に置かなければいけません。
しかし、たくさんコンポーネントを作成するとComponentフォルダ配下がどえらいことになります。
なので、コンポーネントを階層分けしましょう。
例えば、
[PROJECT]
└ src/
└ Controller/
└ Component/
├ Fu/
│ ├ FugaComponent.php
│ └ FugoComponent.php
├ HogeComponent.php
├ ...
のように、「Fu」がつくcomponentはFuフォルダの中に入れてしまします。
loadComponent
さて、上記のようにComponentフォルダを階層分けすると、loadComponent
でコンポーネントが呼び出せなくなります。
階層分けを行った場合は、以下のように呼び出します。
$this->loadComponent('コンポーネント名', [
'className' => 'コンポーネントのネームスペース'
]);
では、例でFugoComponent.phpをloadしてみます。
$this->loadComponent('Fugo', [
'className' => 'AppControllerComponentFuFugoComponent'
]);
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。