2013-02-18 98 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