【发布时间】:2017-07-30 12:03:31
【问题描述】:
我的源代码结构:
- 源
- 控制器
- controller.php
- 认证
- AuthController.php
- 用户
- UserController.php
- 型号
- 控制器
composer.json:
"autoload": {
"psr-4": {
"App\\": "src/"
}
},
AuthController.php:
<?php
namespace App\Controllers\Auth;
use App\Models\User;
use App\Controllers\Controller;
class AuthController extends Controller
{
...
}
UserController.php:
<?php
namespace App\Controllers\User;
use App\Models\User;
use App\Controllers\Controller;
class UserController extends Controller
{
...
}
在 Slim 应用中:
$container = $app->getContainer();
$container['AuthController'] = function ($container){
return new App\Controllers\Auth\AuthController($container);
};
$container['UserController'] = function ($container){
return new App\Controllers\User\UserController($container);
};
从 UserController 调用函数时出现错误:
找不到类“App\Controllers\User\UserController”
而且 IntelliJ 也会标记代码并给出通知:Undefined class UserController。
使用 AuthController 工作正常。
在我看来,我的命名空间有误,但我不知道如何更改它。
我也跑过:
composer dump-autoload -o
【问题讨论】: