2013-02-18 97 views
9

我有一個使用作曲家在Silex應用程序中加載班級的情況。作曲家自動加載不在Silex中的班級

該類位於:

src/custom/UserProvider.php 

在我composer.json,我已經添加了此行:

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

裏面我UserProvider.php文件,我已經有了:

namespace CustomNamespace; 

當我在控制檯中運行作曲家更新時,此行被添加ED的/vendor/composer/autoload_namespaces.php

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

但是,當我嘗試使用類:

new CustomNamespace\UserProvider(); 

我得到這個錯誤:

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

有誰知道這是怎麼回事?謝謝!

+10

是名爲src/custom/CustomNamespace/UserProvider.php的文件嗎? – Maerlyn 2013-02-18 07:11:16

+0

hm ...我要試試這個! – joaobarbosa 2013-02-18 13:58:54

回答

8

問題正是@Maerlyn在他的評論中所說的。

寄託都工作正常,當我提出我的文件的src /自定義/ CustomNamespace/UserProvider.php

1

我就在這裏補充一個音符,如果有人遇到我的問題,這本身顯示與此相同問題,但必須處理大小寫敏感問題。

我將我的站點從OS X(不區分大小寫)移至Ubuntu(區分大小寫),它抱怨該類不存在。該文件被命名爲myclass.php,當我將其重命名爲MyClass.php時,它就起作用了。

+0

很高興知道,@Hans Nilsson! Thx補充我的問題:) – joaobarbosa 2014-04-14 13:48:17