我有一个位于以下路径中的组件类:
@后端/组件/部件名/ ComponentClass.php
并希望为此类使用默认命名空间:
命名空间后端\ components;
我尝试在confing/main.php
中设置别名:
...
'aliases' => [
'@backend/components' => '@backend/components/component-name'
],
...
但我知道这是错误的决定,因为它打破了backend/components
中其他类的命名空间逻辑。
如何为backend\components
和@backend/components
中的两个类设置相同的名称空间@backend/components/component-name
?
答案 0 :(得分:0)
我建议使用composer autoloader执行此任务 - 即使您为单个类提供多个可能的路径,它也能正常工作。将您的composer.json
autoload
部分修改为:
"autoload": {
"psr-4": {
"backend\\": "backend/",
"backend\\components\\": "backend/components/component-name/",
...
}
},
在控制台中运行:
composer dump-autoload
确保您在index.php
:
require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';