繁体   English   中英

Slim3 - 容器:找不到类

[英]Slim3 - Container: Class not found

我的源代码结构

  • SRC
    • 控制器
      • 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
{  
   ...
}

在苗条的应用程序:

$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 

您正在使用Controllers作为命名空间类。 但是在你的目录结构中, controller是小写的。 您必须将controllers目录名称大Controllers 然后您的命名空间可以使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM