PHP自动加载程序未正确加载类?

PHP自动加载程序未正确加载类?,php,composer-php,autoloader,psr-4,Php,Composer Php,Autoloader,Psr 4,我有问题自动加载程序没有正确加载类。我不确定我是否做对了。。。我使用的是slim框架 我的composer.json如下所示: { "require": { "slim/slim": "^3.0", "robmorgan/phinx": "^0.6.6", "vlucas/phpdotenv": "^2.4", "philo/laravel-blade": "3.*" }, "autoload": {

我有问题自动加载程序没有正确加载类。我不确定我是否做对了。。。我使用的是slim框架

我的
composer.json
如下所示:

{
    "require": {
        "slim/slim": "^3.0",
        "robmorgan/phinx": "^0.6.6",
        "vlucas/phpdotenv": "^2.4",
        "philo/laravel-blade": "3.*"
    },

    "autoload": {
        "psr-4": {
            "Cipo\\": ["app/"]
        }
    }
}
$app->get("/", Cipo\Controllers\HomeController::class . ":index");
$app->get("/auth/login", Cipo\Controllers\Console\AuthController::class . ":getLogin");
和我的目录结构:

app/
    Controllers/
        Console/
            AuthController.php
            UsersController.php
        HomeController.php
    Core/
        AbstractController.php
    router.php
database/
public/
    index.php
vendor/
views/
storage/
composer.json
我的
router.php
如下所示:

{
    "require": {
        "slim/slim": "^3.0",
        "robmorgan/phinx": "^0.6.6",
        "vlucas/phpdotenv": "^2.4",
        "philo/laravel-blade": "3.*"
    },

    "autoload": {
        "psr-4": {
            "Cipo\\": ["app/"]
        }
    }
}
$app->get("/", Cipo\Controllers\HomeController::class . ":index");
$app->get("/auth/login", Cipo\Controllers\Console\AuthController::class . ":getLogin");
问题是
/
工作并显示正确的HTML,但是
/auth/login
不工作。下面是引发的错误:

[Tue Jan 31 14:11:37.758803 2017] [:error] [pid 1336] [client 44.44.44.1:54453] Slim Application Error:
Type: RuntimeException
Message: Callable Cipo\\Controllers\\Console\\AuthController does not exist
File: /var/www/cipo.me/vendor/slim/slim/Slim/CallableResolver.php
Line: 62
Trace: #0 /var/www/cipo.me/vendor/slim/slim/Slim/CallableResolverAwareTrait.php(45): Slim\\CallableResolver->resolve('Cipo\\\\Controller...')
#1 /var/www/cipo.me/vendor/slim/slim/Slim/Route.php(333): Slim\\Routable->resolveCallable('Cipo\\\\Controller...')
#2 /var/www/cipo.me/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(116): Slim\\Route->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#3 /var/www/cipo.me/vendor/slim/slim/Slim/Route.php(316): Slim\\Route->callMiddlewareStack(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#4 /var/www/cipo.me/vendor/slim/slim/Slim/App.php(438): Slim\\Route->run(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#5 /var/www/cipo.me/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(116): Slim\\App->__invoke(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#6 /var/www/cipo.me/vendor/slim/slim/Slim/App.php(332): Slim\\App->callMiddlewareStack(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#7 /var/www/cipo.me/vendor/slim/slim/Slim/App.php(293): Slim\\App->process(Object(Slim\\Http\\Request), Object(Slim\\Http\\Response))
#8 /var/www/cipo.me/public/index.php(45): Slim\\App->run()
#9 {main}
View in rendered output by enabling the "displayErrorDetails" setting.
AuthController.php
代码段:

<?php

namespace Cipo\Controllers\Console;

use PDO;
use Cipo\Core\AbstractController;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use Interop\Container\ContainerInterface;


/**
 * Class AuthController
 * @property \PDO db
 * @property \Philo\Blade\Blade blade
 */
class AuthController extends AbstractController
{
    // ...
    public function getLogin(RequestInterface $request, ResponseInterface $response)
    {
        $response->getBody()->write($this->blade->view()->make("auth.login")->render());
        return $response;
    }
}

我看不到任何明显的问题。如果
/
的路径有效,则自动加载器“应该”有效。你有没有检查过你的文件名或文件夹名没有任何严重的打字错误?在某个时候,类似的事情也发生在我身上。在这种情况下,在任何地方复制/粘贴控制器的名称都会有所帮助。我尝试了
/users
路由
$app->get(“/users”,Cipo\Controllers\Console\userscocontroller::class.”:index“)
有效,看起来有一些输入错误:(我已经弄明白了。问题是我的
AuthController
类在名为
AuthControllers.php
的文件中,而不是
AuthController.php
的文件中!你不是第一个因为类似错误而失去理智的人。:)