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でから:
クラス 'のApp \コントローラ\ユーザー\のUserControllerで' が見つかりません
もIntelliJのは、コードをマークし、通知できます:未定義のクラスUserControllerでは。
AuthControllerを使用すると問題なく動作します。
私の意見では、名前空間が間違っていますが、変更方法がわかりません。
私も実行している:あなたは、名前空間のクラスとしてControllers
を使用している
composer dump-autoload -o
私はディレクトリ名を 'Controllers'に変更しましたが、何の効果もありません。 – Jurid
しかし、composeを実行した後、dump-autoloadは動作しています – Jurid