Yii2自定义组件命名空间

时间:2018-05-30 16:04:53

标签: yii2 namespaces aliases

我有一个位于以下路径中的组件类:

  

@后端/组件/部件名/ ComponentClass.php

并希望为此类使用默认命名空间:

  

命名空间后端\ components;

我尝试在confing/main.php中设置别名:

...
'aliases' => [
    '@backend/components' => '@backend/components/component-name'
],
...

但我知道这是错误的决定,因为它打破了backend/components中其他类的命名空间逻辑。

如何为backend\components@backend/components中的两个类设置相同的名称空间@backend/components/component-name

1 个答案:

答案 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';