使用 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
我正在创建类型为 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