我刚刚开始使用 composer 进行依赖管理,我很难弄清楚我是如何不遵守 psr-4 进行自动加载的,所以我在这里寻求建议。我有一个生成随机值的类,该类已经在 packagegist 上。项目结构如下(我已将 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
作曲家.json A
{
"require": {
"ejfrancis/php-random-value": "dev-master"
}
}
作曲家.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.json B 文件上运行了“composer validate”,它肯定是有效的