Ich habe ein Projekt mit mehreren Unterordnern. In einem der Ordner befinden sich einige "Addons". Alle diese Addons haben einen composer.json und einen Vendor-Ordner. Ich wollte jetzt mein eigenes Addon erstellen und einen neuen Ordner erstellen und ein composer.json
in dieses Verzeichnis einfügen. composer install
funktioniert ohne Probleme, aber wenn ich die Installation irgendwie mein Addon Ich erhalte den FehlerAufruf zu undefinierter Methode 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()
Was dieses Problem verursachen könnte? Ich habe bereits composer dump-autoload
und composer global update
, weil ich diese Lösungen im Internet gefunden habe, aber es funktioniert immer noch nicht. Muss ich etwas Spezielles tun, damit es in Unterordnern funktioniert?
Dies ist derzeit mein composer.json
{
"name": "namespace/projectname-addonname",
"autoload": {
"psr-4": {
"namespace1\\namespace2\\namespace3\\" : "src"
}
}
}
Ich weiß nicht, ob das hilft, aber wenn ich den Lader var_dump
Dies ist das Ergebnis
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) {
}
}
Danach wird die $loader->setPsr4
Methode ist gerufen und ich bekomme den fatalen Fehler.
Die seltsame Sache ist, dass bei der Verwendung classmap
anstelle von psr-4
für Autoloading, es funktioniert ohne Probleme.
Was ist Ihre Komponist-Version? Was ist das Ergebnis von 'composer --version'? –
Ich habe 'Composer Version 1.0-dev (6eb50623e6e00bac4ed893802836e50b62c83434) 2016-02-08 19: 03: 10' und das gleiche Problem – OzzyCzech