2013-02-18 8 views
9

Mam sytuację za pomocą kompozytora, aby załadować klasę w aplikacji Silex.Kompozytor autoload nie ładuje klasy w Silex

Klasa ta znajduje się pod adresem:

src/custom/UserProvider.php 

W moim composer.json dodałem tej linii:

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

Wewnątrz mojego pliku UserProvider.php, mam:

namespace CustomNamespace; 

Kiedy wpadłem aktualizacji kompozytor w konsoli, ta linia została dodać ed do /vendor/composer/autoload_namespaces.php

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

, ale gdy próbuję użyć klasy:

new CustomNamespace\UserProvider(); 

mam ten błąd:

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

Czy ktoś wie co się dzieje? Dzięki!

+10

Czy plik nazywa się src/custom/CustomNamespace/UserProvider.php? – Maerlyn

+0

hm ... Spróbuję tego! – joaobarbosa

Odpowiedz

8

Problem jest dokładnie taki, jak powiedział @Maerlyn w swoim komentarzu.

Everthing działa poprawnie, gdy przeniosłem mój plik do src/custom/CustomNamespace/UserProvider.php

1

będę po prostu dodać notatkę tutaj jeśli ktoś natknie mojego problemu, który wyświetlany sobie taki sam jak ten pytanie, ale dotyczyło to rozróżniania wielkości liter.

Przeniosłem moją witrynę z OS X (nie liter) do Ubuntu (liter), który skarżył się, że klasa nie istnieje. Plik o nazwie myclass.php, a kiedy zmieniłem nazwę na MyClass.php zadziałało.

+0

Dobrze wiedzieć, @Hans Nilsson! Thx za uzupełnienie mojego pytania :) – joaobarbosa

Powiązane problemy