Composer自动加载在Silex中无法加载类

9

我遇到了一个使用composer在Silex应用程序中加载类的情况。

这个类位于:

src/custom/UserProvider.php

在我的composer.json文件中,我加入了以下这些行:
"autoload": {
   "psr-0": {
        "CustomNamespace": "src/custom/"
    }
}

在我的UserProvider.php 文件中,我有以下内容:
namespace CustomNamespace;

当我在控制台中运行composer update时,这一行被添加到/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
嗯...我要试试这个! - joaobarbosa
2个回答

8
问题正是@Maerlyn在评论中所说的。
当我将文件移动到src/custom/CustomNamespace/UserProvider.php时,一切都很顺利。

1
我在这里添加一条注释,如果有人遇到和这个问题类似的情况,但与大小写敏感性有关。
我将我的网站从OS X(不区分大小写)移动到Ubuntu(区分大小写),它抱怨该类不存在。文件名为myclass.php,当我将其重命名为MyClass.php时,它就可以工作了。

很高兴知道,@Hans Nilsson!感谢您对我的问题的赞扬 :) - joaobarbosa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接