PSR4 Composer 自动加载命名空间

PSR4 Composer Autoloading namespaces

我一直在玩一些 Composer 自动加载,但我遇到了一些问题,所以目录结构是

index.php
app/
   helpers/
          router.php
vendor/
   composer/
          /*usual files*/
   autoload.php

在我的composer.json里面我有以下

"autoload": {
        "psr-4": {
            "App\": "app/"
        }
    }

在我的index.php里面我有

<?php
// Autoload our namespaces
require __DIR__.'/vendor/autoload.php';

use App\Helpers\Router;
$route = new Router;

出现以下错误

Fatal error: Class 'App\Helpers\Router' not found in /var/www/public/index.php on line 6

我尝试了一些不同的方法来尝试让它工作,但我不确定我哪里出错了。这是我第一次研究在框架之外使用 Composer 进行自动加载,因此非常感谢任何指导。

PSR-4 区分大小写。结构必须是 app/Helpers/Router.php 或更好的应用程序,大写字母 A.

All class names MUST be referenced in a case-sensitive fashion.

The subdirectory name MUST match the case of the sub-namespace names.

The terminating class name corresponds to a file name ending in .php. The file name MUST match the case of the terminating class name.

http://www.php-fig.org/psr/psr-4/