簡體   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