Ho un progetto con più sottocartelle. In una delle cartelle sono alcuni "addons". Tutti questi componenti aggiuntivi hanno un compositore.json e una cartella del venditore. Ora volevo creare il mio addon personale e creato una nuova cartella e mettere un composer.json
in quella directory. composer install
funziona senza problemi, ma quando sono in qualche modo l'installazione di mio addon sto ottenendo l'erroreChiamata a metodo non definito 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()
Che cosa potrebbe causare questo problema? Ho già fatto composer dump-autoload
e composer global update
, perché ho trovato queste soluzioni su Internet, ma ancora non funziona. Devo fare qualcosa di speciale per farlo funzionare nelle sottocartelle?
Questo è attualmente il mio composer.json
{
"name": "namespace/projectname-addonname",
"autoload": {
"psr-4": {
"namespace1\\namespace2\\namespace3\\" : "src"
}
}
}
Non so se questo aiuta, ma quando ho var_dump
il caricatore questo è il risultato
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) {
}
}
Dopo che il metodo è $loader->setPsr4
chiamato e sto ricevendo l'errore fatale.
La cosa strana è che quando si utilizza classmap
anziché psr-4
per il caricamento automatico, funziona senza problemi.
Qual è la versione del tuo compositore? Qual è il risultato di 'compositore --versione'? –
Ho 'Composer versione 1.0-dev (6eb50623e6e00bac4ed893802836e50b62c83434) 2016-02-08 19: 03: 10' e lo stesso problema – OzzyCzech