Php 类未找到错误仅在生产服务器上

Php 类未找到错误仅在生产服务器上,php,namespaces,silex,Php,Namespaces,Silex,我在用Silex做一个项目。在一个特定的文件中,我添加了一个use语句,让自动加载程序包含一个特定的php文件。在文件的后面,我使用该类。在开发服务器上一切正常,但当我转到生产环境时,我收到一条致命错误:找不到类消息。编辑:两个服务器现在都使用PHP5.4.4 是否存在任何可能导致此问题的安装特定问题?我可以确认composer生成的两个命名空间自动加载文件是相同的 为了彻底起见,以下是include声明: use Instaphp; 下面是代码后面部分中类的用法: $app['instaph

我在用Silex做一个项目。在一个特定的文件中,我添加了一个
use
语句,让自动加载程序包含一个特定的php文件。在文件的后面,我使用该类。在开发服务器上一切正常,但当我转到生产环境时,我收到一条
致命错误:找不到类
消息。编辑:两个服务器现在都使用PHP5.4.4

是否存在任何可能导致此问题的安装特定问题?我可以确认composer生成的两个命名空间自动加载文件是相同的

为了彻底起见,以下是include声明:

use Instaphp;
下面是代码后面部分中类的用法:

$app['instaphp'] = $app->share(function() use ($app) {
            if($app['tagframe.instagram_token'] === null) {
                return Instaphp\Instaphp::Instance();
            } else {
                return Instaphp\Instaphp::Instance($app['tagframe.instagram_token']);
            }
        });

        $app['instaphp.config'] = $app->share(function() use ($app) {
            return Instaphp\Config::Instance();
        });
下面是确切的错误:

Fatal error: Class 'Instaphp\Config' not found in /var/www/silexsandbox/src/TagFrame/Silex/TagFrameServiceProvider.php on line 89

更新:我应该补充一点,在我正在处理的相当大的代码库中,我在其他任何地方都没有遇到过这样的错误,所以我知道这并不像所有名称空间都不工作那么简单。

谢谢您的评论。我确实确保使用Composer进行了更新,以便自动加载程序被转储

问题是(经过数小时的修改后,我发现)我使用的第三方库(Instaphp)的目录结构是小写的。这并没有给我的Mac带来问题,但生产服务器运行的是Ubuntu,我想它使用区分大小写的文件处理实用程序,而Mac没有


花了一个晚上在这上面,我真的很生气

默认情况下,Mac使用日志记录的不区分大小写的文件系统。Linux主要是区分大小写的,这取决于您的口味。这肯定会导致上述行为


我建议您在Mac上创建第二个分区,并将其格式化为日志大小写敏感,以便与您的生产环境更接近。

听起来可能很琐碎,但您确定已在生产服务器上安装了供应商(或在最新更改后进行了更新)?您是否正在运行PHP-FPM?也许启用了APC?您可以尝试重新加载FPM Worker吗?您确实可以在osx上以区分大小写的模式格式化另一个分区,但似乎不建议将其用于您的os分区,因为某些应用程序将无法运行。例如:Photoshop有一个像这样的分区可能没问题:)但多亏了这个答案,我花了5分钟来解决它,那个晚上是值得的^^