2017-03-09 102 views
1

我的源代碼結構Slim3 - 容器:類未發現

  • 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); 
}; 

調用functi當我得到一個錯誤從UserController的:

級 '應用程序\控制器\用戶\ UserController的' 未找到

而且也標誌着的IntelliJ的代碼,並給出了通知:未定義類UserController的。

使用AuthController工作正常。

在我看來我錯了命名空間,但我不知道如何改變它。

我也運行:

composer dump-autoload -o 

回答

0

您使用Controllers作爲命名空間類。但在你的目錄結構中controller是小寫字母。您必須將controllers的目錄名稱大寫爲Controllers。那麼你的名字空間可以使用。

+0

我已將目錄名稱更改爲「控制器」,但它沒有任何作用。 – Jurid

+0

但運行撰寫轉儲自動加載它正在工作 – Jurid