2014-05-19 9 views
16

Nel mio progetto laravel ho creato un modello chiamato CustomerLinks. Il modello si trova nella cartella app/models. Il mio file compositore ha un caricamento automatico di:Laravel/Compositore: la dichiarazione d'uso con nome non composto

"autoload": { 
    "classmap": [ 
     ... 
     "app/models", 
     ... 

    ], 
    ... 
}, 

E ho una dichiarazione use nel mio ExtendedUserController che fa riferimento a CustomerLinks:

<?php 

... 
use CustomerLinks; 
... 

class ExtendedUserController extends UserController { 

E 'la mia comprensione che poiché la proprietà autoload nel file compositore ha app/i modelli nella classmap significa che dovrei essere in grado di usare use CustomerLinks senza un prefisso di namespace.

Questo funziona, ma ogni volta che faccio un cambiamento alla mia ExtendedUserControler e ricaricare il mio browser ottengo l'errore:

The use statement with non-compound name 'CustomerLinks' has no effect 

I punti di errore al controller utente esteso use CustomerLinks linea.

Quando faccio un composer dump-autoload tutto funziona bene, ma diventa estremamente irritante quando devo seguire il modello

make a change -> dump autoload -> refresh browser -> repeat

C'è un modo di trattare con l'errore?

risposta

27

Se non si è all'interno di uno spazio dei nomi (ovvero si è nello spazio dei nomi di root) e anche la classe che si desidera utilizzare non si trova in uno spazio dei nomi (ovvero anche nello spazio dei nomi di root), quindi l'uso di use non ha senso, perché il codice funzionerà allo stesso modo senza di esso. Non stai importando nulla con questa affermazione.

Il compositore non ha nulla a che fare con questo, né ha nessun altro autoloading. È così che PHP funziona da solo.

+11

l'ultima frase non è stata utile Sven. Siamo tutti da qualche parte nel continuum dell'apprendimento –

+5

Penso che le informazioni su quale parte della nostra tecnologia magica sia responsabile sono informazioni valide. Se il TO fa qualcosa assumendo che dovrebbe migliorare la situazione che non funzionerà mai, dovrei dirgli che il suo legame mentale tra le cose è sbagliato. Inoltre, gli consente di utilizzare il sito Web della documentazione corretto per i problemi correlati. – Sven

+0

Basta eliminare la libreria di utilizzo; linea e corri di nuovo. Ha funzionato per me – Dazzle

Problemi correlati