刚刚将系统迁移到新的cake3。 但是现在由于命名空间,努力在方法中动态加载库。
我有一个控制器
用这个:
require_once(APP . 'Lib' . DS . 'Channel' . DS . 'Channel1.php');
require_once(APP . 'Lib' . DS . 'Channel' . DS . 'Channel2.php');
require_once(APP . 'Lib' . DS . 'Channel' . DS . 'Channel3.php');
require_once(APP . 'Lib' . DS . 'Channel' . DS . 'Channel4.php');
use Channel\Channel1;
use Channel\Channel2;
use Channel\Channel3;
但是我不想加载所有库,除非我需要它们。有什么好的解决方案的建议吗?
答案 0 :(得分:3)
如果您将文件放在src/Channel
而不是src/Lib/Channel
,则自动加载器会在您执行时自动找到您的文件
use App\Channel\Channel1;
要求您将类的名称空间设置为App\Channel
您还可以告诉作曲家如何自动加载您的自定义命名空间。在composer .json
的自动加载部分的psr-4
下,执行:
"Channel\\" : "./src/Lib/Channel"
最后执行composer dumpautoload