我有一个github存储库https://github.com/koulslou/ups,我想将其添加到我的项目中。
在项目root i创建composer.json文件并定义以下自动加载属性:
{
"autoload": {
"files": [
"libraries/Ups/Ups.php",
"libraries/Ups/Ups_Base.php",
"libraries/Ups/Ups_Base_Response.php",
"libraries/Ups/Ups_Live_Rates.php"
]
}
}
我运行
php composer.phar install
存储库正在下载,但看起来自动加载器不起作用。当我尝试初始化其中一个类
时$test = new Ups()
我有以下错误:
Fatal error: Class 'Ups' not found in application/....
我是否错误地定义了"自动加载"属性?
我建议不要使用"文件"自动加载器,因为那不是很自动 - 此处提到的文件始终包括在内。用" classmap"替换它会更好。然后,您不需要提及所有文件,但是您可以简单地说明要扫描上课的目录。
现在我在任何地方都看不到的东西:您是否在任何地方初始化了作曲家的自动加载器?这通常是
require "vendor/autoload.php";
finaly,我发现了问题所在。我试图加载的项目中的composer.json文件 - UPS库 - 无效。运行时我可以下载文件:
composer.phar install
,但看起来像composer.json文件被忽略了。我跑了
时发现了它composer.phar update
并得到
No valid composer.json was found
使用选项-v,我遇到了"名称"是未定义的索引的错误。因此,我只是将"名称"字段添加到composer.json。最终版本是:
{
"name":"KoulSlou/UPS",
"autoload": {
"files": [
"libraries/Ups/Ups.php",
"libraries/Ups/Ups_Base.php",
"libraries/Ups/Ups_Base_Response.php",
"libraries/Ups/Ups_Live_Rates.php"
]
}
}