Yii2 自定义组件命名空间
Yii2 custom component namespace
我有一个组件 class 位于以下路径:
@backend/components/component-name/ComponentClass.php
并想为此 class 使用默认命名空间:
namespace backend\components;
我尝试在 confing/main.php
:
中设置别名
...
'aliases' => [
'@backend/components' => '@backend/components/component-name'
],
...
但我知道这是错误的决定,因为它破坏了位于 backend/components
.
中的其他 classes 的命名空间逻辑
如何为 @backend/components
和 @backend/components/component-name
中的 class 设置相同的命名空间 backend\components
?
我建议为此任务使用 composer autoloader - 即使您为单个 class 提供多个可能的路径,它也能正常工作。将 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';
我有一个组件 class 位于以下路径:
@backend/components/component-name/ComponentClass.php
并想为此 class 使用默认命名空间:
namespace backend\components;
我尝试在 confing/main.php
:
...
'aliases' => [
'@backend/components' => '@backend/components/component-name'
],
...
但我知道这是错误的决定,因为它破坏了位于 backend/components
.
如何为 @backend/components
和 @backend/components/component-name
中的 class 设置相同的命名空间 backend\components
?
我建议为此任务使用 composer autoloader - 即使您为单个 class 提供多个可能的路径,它也能正常工作。将 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';