У меня есть проект с несколькими подпапками. В одной из папок есть несколько «аддонов». У всех этих аддонов есть композитор.json и папка поставщика. Теперь я хотел создать свой собственный аддон и создать новую папку и поместить composer.json
в этот каталог. composer install
работает без каких-либо проблем, но когда я как-то установка моего аддона я получаю ошибкуЗвонок на неопределенный метод Composer \ Autoload \ ClassLoader :: setPsr4()
FastCGI: server "/fcgi-bin-php5-fpm-ezi" stderr: PHP message: PHP Fatal error: Call to undefined method Composer\\Autoload\\ClassLoader::setPsr4()
Что может вызвать эту проблему? Я уже делал composer dump-autoload
и composer global update
, потому что нашел эти решения в Интернете, но он по-прежнему не работает. Должен ли я делать что-то особенное, чтобы оно работало в подпапках?
Это в настоящее время мой composer.json
{
"name": "namespace/projectname-addonname",
"autoload": {
"psr-4": {
"namespace1\\namespace2\\namespace3\\" : "src"
}
}
}
Я не знаю, если это помогает, но когда я var_dump
загрузчик это результат
object(Composer\Autoload\ClassLoader)#138 (4) {
["prefixes":"Composer\Autoload\ClassLoader":private]=>
array(0) {
}
["fallbackDirs":"Composer\Autoload\ClassLoader":private]=>
array(0) {
}
["useIncludePath":"Composer\Autoload\ClassLoader":private]=>
bool(false)
["classMap":"Composer\Autoload\ClassLoader":private]=>
array(0) {
}
}
После того, что метод $loader->setPsr4
является и я получаю фатальную ошибку.
Странная вещь заключается в том, что при использовании classmap
вместо psr-4
для автозагрузки он работает без проблем.
Какова ваша версия для композитора? Каков результат 'composer -version'? –
У меня есть 'Composer version 1.0-dev (6eb50623e6e00bac4ed893802836e50b62c83434) 2016-02-08 19: 03: 10' и такая же проблема – OzzyCzech