2013-02-18 5 views
9

Ho una situazione che utilizza compositore per caricare una classe in un'app Silex.Autoload compositore non carica classe in Silex

Questa classe si trova in:

src/custom/UserProvider.php 

Nel mio composer.json, ho aggiunto queste righe:

"autoload": { 
    "psr-0": { 
     "CustomNamespace": "src/custom/" 
    } 
} 

Dentro il mio file UserProvider.php, ho:

namespace CustomNamespace; 

Quando ho eseguito aggiornamento compositore in console, questa linea è stata aggiungere ed al /vendor/composer/autoload_namespaces.php

'CustomNamespace' => $baseDir . '/src/custom/', 

Ma, quando cerco di utilizzare la classe:

new CustomNamespace\UserProvider(); 

ho ottenuto questo errore:

Fatal error: Class 'CustomNamespace\UserProvider' not found in /home/ubuntu/www/project/web/index.php on line 27

Qualcuno sa cosa sta succedendo? Grazie!

+10

è il file chiamato src/custom/CustomNamespace/UserProvider.php? – Maerlyn

+0

hm ... ho intenzione di provare questo! – joaobarbosa

risposta

8

Il problema è esattamente ciò che @Maerlyn ha detto nel suo commento.

Everthing funziona bene quando ho spostato il mio file src/custom/CustomNamespace/UserProvider.php

1

mi limiterò a aggiungere una nota qui se qualcuno viene attraverso il mio problema, che a sua volta visualizzato lo stesso di questo domanda, ma aveva a che fare con la case sensitive.

ho spostato il mio sito da OS X (non tra maiuscole e minuscole) a Ubuntu (maiuscole e minuscole), che si lamentava che la classe non esisteva. Il file è stato chiamato myclass.php e quando lo ho rinominato in MyClass.php ha funzionato.

+0

Buono a sapersi, @Hans Nilsson! Grazie per aver completato la mia domanda :) – joaobarbosa