我刚开始使用Composer进行依赖管理,但是我很难弄清楚我没有遵循PSR-4自动加载标准的原因,所以我需要一些建议。我有一个生成随机值的类,已经在Packagist上了。项目结构如下(我将composer.json文件标记为A和B):
项目目录
|classfile.php
A |composer.json
|vendor
|autoload.php
|ejfrancis
|php-random-value
B |composer.json
|RandomValue.php <--the class I want autoloaded
composer.json A
{
"require": {
"ejfrancis/php-random-value": "dev-master"
}
}
composer.json B
{
"name": "ejfrancis/php-random-value",
"description": "Secure random value generator.",
"require": {
"php": ">=5.3.0"
},
"license": "MIT",
"autoload": {
"psr-4": {
"ejfrancis\\" : ""
}
}
}
最后是RandomValue.php文件,它声明了ejfrancis命名空间。
namespace ejfrancis;
class RandomValue{
//foo
}
当我运行应用程序时,出现错误“找不到RandomValue类”,因此它无法正确自动加载。我是否没有遵守PSR-4规范,或者有其他错误?我还尝试使用类似于“classmap”:[“RandomValue.php”]的composer classmap自动加载,但没有成功。 感谢您的帮助。
更新:我在composer.json B文件上运行了“composer validate”,它绝对是有效的。