Silex autoload psr-4 class 不存在

Silex autoload psr-4 class does not exist

我有这个错误:

InvalidArgumentException in ControllerResolver.php line 147: Class "MyProject\API\FrontController" does not exist.

这是我的项目结构:

我的composer.json

"psr-4": {
        "MyProject\API\": "myproject/api/src",
        "MyProject\Client\": "myproject/client/src"
 }

我的 routing.php :

// myproject/api/app/config/routing.php
$routes->get('/', 'MyProject\API\FrontController::exec')

FrontController.php :

<?php 
// myproject/api/src/FrontController
namespace MyProject\API; 
class FrontController {

您在 psr-4 地图中放置了一个额外的文件夹。第一个 myproject 目录不应该在你的路径中,因为这个路径是相对于 composer.json 文件的,而你的 src 代码在 api/src 和 clients/src 中(第二个只是猜测,你没有post clients 目录的内容)。

让我告诉你,恕我直言,你的目录布局很奇怪。我会有一个 src 目录,里面放一个 api 和一个客户端子目录。

PS:您列出的客户端目录是单数形式,但在 composer 中是复数形式,注意细节!

还有 运行 composer dump-autolad 更改 psr-4 参数后。