2014-05-19 16 views
16

W moim projekcie laravel stworzyłem model o nazwie CustomerLinks. Model znajduje się w folderze app/models. Mój plik kompozytor ma AutoLoad z:Laravel/Composer: Deklaracja użycia z niezwiązaną nazwą

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

    ], 
    ... 
}, 

I mam use oświadczenie w moim ExtendedUserController która odwołuje CustomerLinks:

<?php 

... 
use CustomerLinks; 
... 

class ExtendedUserController extends UserController { 

To moja zrozumienie, że skoro nieruchomość autoload w pliku kompozytor app/modeli w klasie, oznacza to, że powinienem móc używać use CustomerLinks bez prefiksu przestrzeni nazw.

To działa, ale za każdym razem robię zmianę mojego ExtendedUserControler i odświeżyć przeglądarkę pojawia się błąd:

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

punktów błędach do use CustomerLinks linii kontroler rozszerzony użytkownika.

Kiedy zrobić composer dump-autoload wszystko działa poprawnie, ale staje się bardzo irytujące, kiedy mam do naśladowania wzór

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

Czy jest jakiś sposób do czynienia z błędem?

Odpowiedz

27

Jeśli nie znajdujesz się w przestrzeni nazw (tzn. Jesteś w głównej przestrzeni nazw), a klasa, której chcesz użyć, również nie znajduje się w przestrzeni nazw (tj. Również w głównej przestrzeni nazw), wówczas użycie use nie ma sensu, ponieważ kod będzie działał bez niego. Nie importujesz niczego z tym stwierdzeniem.

Kompozytor nie ma nic wspólnego z tym, ani nie ma żadnego innego automatycznego ładowania. Tak działa PHP.

+11

ostatnie zdanie nie było pomocne Sven. Wszyscy jesteśmy gdzieś w kontinuum uczenia się –

+5

Uważam, że informacja o tym, która część naszej magicznej technologii jest odpowiedzialna, jest ważna. Jeśli TO robi coś, zakładając, że powinno poprawić sytuację, która nigdy nie zadziała, powinienem powiedzieć mu, że jego mentalne powiązanie między rzeczami jest złe. Pozwala również na korzystanie z właściwej strony internetowej dokumentacji w celu pokrewnych problemów. – Sven

+0

Po prostu usuń bibliotekę użycia; linię i biegnij ponownie. Pracował dla mnie. – Dazzle