在config/main.php中找不到Yii2模块(不在/ vendor文件夹下)类

gva*_*nto 2 reflection module yii2

我在文件夹api下创建了一个模块(它本身与yii2高级应用程序中的后端和前端相同).

文件夹结构:

api
- common
------ controllers
------ models
- config
- modules
------ v1
---------- controllers
-------- - 模型
- 运行时
- 测试
- 网络

在api/config/main.php中:

return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),    
'bootstrap' => ['log'],
'modules' => [
    'v1' => [
        'basePath' => '@app/modules/v1',
        'class' => 'api\modules\v1\Module'
    ]
],
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ReflectionException

类api\modules\v1\Module不存在

这个班肯定在那里.

我运行了一个composer dumpautoload(没有错误).

config/main.php中的urlManager:

'urlManager' => [
        'enablePrettyUrl' => true,
        'enableStrictParsing' => true,
        'showScriptName' => false,
        'rules' => [
              'v1/site/index' => 'v1/site/index', //module/controller/action
        ],        
    ]
Run Code Online (Sandbox Code Playgroud)

任何帮助非常感谢,

谢谢

gva*_*nto 7

好了吧:在common/config/bootstrap.php中,添加:

Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
Run Code Online (Sandbox Code Playgroud)

然后在config/main.php中使用:

'modules' => [
        'v1' => [
            'basePath' => '@api/modules/v1',
            'class' => 'api\modules\v1\Module'
        ]
    ],
Run Code Online (Sandbox Code Playgroud)

这似乎有效,谢谢你们