Composer - оформить заказ с помощью require_once
У меня есть проблема, включая частную API-библиотеку Google AdWords версии 4.6.0 через композитора. В этой библиотеке есть файлы, которые содержат операторы require_once, которые сами выдают ошибку, например:
PHP Fatal error: main(): Failed opening required 'Google/Api/Ads/Common/Util/Logger.php'
Composer.json выглядит так:
"repositories": [
{
"type": "package",
"package": {
"name": "google/adwords",
"version": "4.6.0",
"source": {
"url": "svn-url/3.3.5/google_lib/",
"type": "svn",
"reference": "Apility/"
}
}
}
]
а также:
"require": {
"google/adwords": "4.6.0"
}
"autoload": {
"classmap": [
"vendor/google/"
]
}
}
Есть ли общий способ иметь дело с утверждениями require_once в библиотеке для композитора?
С уважением, Кай
Я не могу удалить операторы require, потому что это библиотека, и когда приходит обновление, все изменения исчезают..
Я перепробовал это:
"repositories": [
{
"type": "package",
"package": {
"name": "google/adwords",
"version": "4.6.0",
"source": {
"url": "https://subversion.unister.lan/keyword-tool/trunk/API_2009/google_lib/",
"type": "svn",
"reference": "Apility/"
},
"autoload": {
"classmap": ["src/"]
},
"include-path": ["src/"]
}
}
],
"require": {
"google/adwords": "4.6.0",
}
Но затем классы библиотеки не добавляются в autoload_classmap.php, и библиотека не может быть найдена.
1 ответ
Да, эти операторы обычно зависят от правильности установки include_path, и вы можете сделать это и с помощью Composer. См. https://getcomposer.org/doc/04-schema.md#include-path
Лучшим способом было бы исправить основную проблему в коде, то есть удалить эти операторы.
Кроме того, ваше собственное программное обеспечение не должно объявлять автозагрузку для этой библиотеки, как вы делаете сейчас (т.е. объявлять автозагрузку внутри каталога vendor). Вы объявляете информацию о пакете вручную, и этот пакет должен также содержать информацию о автозагрузке, а также параметр пути включения. См пример smarty в документации: https://getcomposer.org/doc/05-repositories.md#package-2