使用 Composer 自动加载 PSR-4 - Class 未找到

PSR-4 autoloading with Composer - Class not found

我正在创建类型为 library 的 composer 包。并试图要求它到 Symfony2 项目。

包裹有以下composer.json

{
    "name": "vendor/package-sdk",
    "description": "My private package",
    "type": "library",
    "license": "MIT",
    "autoload": {
        "psr-4": {"Vendor\PackageSDK\": "src/"}
    },
    "require": {
        "php": ">=5.3.3"
    }
}

然后我需要它到我的 SF2 项目。

"repositories": [
    {
        "type": "git",
        "url": "git@github.com:me/vendor-package-sdk.git"
    },
],
"require": {
    ...
    "vendor/package-sdk": "~0.0.1-alpha1"
    ...
}

当我打电话给

use Vendor\PackageSDK\Client;

...

$client = new Client();

```

我遇到了致命错误:

PHP Fatal error:  Class 'Vendor\PackageSDK\Client' not found in /path

如果我这样做

composer dump-autoload -o

它有效,但是

composer dump-autoload

不是。

文件 vendor/composer/autoload_psr4.php 包含:

'Vendor\PackageSDK\' => array($vendorDir . '/vendor/package-sdk/src'),

谁能告诉我我做错了什么?

在 composer autoload_classmap.php 文件中我看到以下行

'Vendor\PackageSDK\Client' => $vendorDir 。 '/vendor/package-sdk/src/Cilent.php',

所以这只是包文件名的拼写错误

Cilent.php 应该是 Client.php