在作曲家项目中,我必须添加一个库,它没有composer.json
并且不使用名称空间。因此,我调整了我的项目composer.json
以添加库:
{
[...]
"type": "project",
"repositories": [
{
"type": "package",
"package": {
"name": "interpid/tfpdf-table",
"version": "5.1.0",
"dist": {
"url": "contrib/tfpdf_table_5.1.0.zip",
"type": "zip"
},
"autoload": {
"classmap": ["", "classes/", "classes/Pdf/", "classes/Pdf/String/", "classes/Pdf/Table/Cell/", "font/"],
"files": ["tfpdf.php", "classes/pdftable.php"]
}
}
}
],
"require": {
[...]
"interpid/tfpdf-table": "5.1.*"
}
[...]
}
在composer update
上解压缩zip文件并按预期/配置存储在目录vendor/interpid/tfpdf-table
中。但PHP文件/类未添加到classmap
或files
配置定义的自动加载文件中。 composer dump-autoload
也无济于事。
答案 0 :(得分:0)
正如您所指出的那样,zip被提取到vendor/interpid/tfpdf-table
,而不是vendor/interpid
,这意味着额外的根文件夹是zip的一部分。作曲家不能神奇地猜测,它只是从根包文件夹解析,所以vendor/interpid
。因此,您必须使用tfpdf-table/
为所有自动加载器定义添加前缀。
如果您想发现此类问题,请使用composer update
标记运行-vvv
。