我的源代码结构:
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还会标记代码并发出通知:未定义的类UserController。
使用AuthController工作正常。
在我看来,我的命名空间错误,但我不知道如何改变它。
我也跑了:
composer dump-autoload -o
答案 0 :(得分:0)
您正在使用Controllers
作为命名空间类。但在您的目录结构中,controller
是小写的。您必须将controllers
目录名称大写为Controllers
。然后您的命名空间可以使用。