【问题标题】:Slim working on local but not live; namespace related?Slim 在本地工作但不生活;命名空间相关?
【发布时间】:2012-12-15 13:17:10
【问题描述】:

我在TextPress(平面文件博客系统)工作,它在Slim 上运行。

它在我运行 php 5.4.4 的本地服务器上运行顺利,但是当我部署到运行 php 5.3.10 的实时服务器时,我收到以下错误:

Fatal error: Class 'Slim\Environment' 
    not found in /home/webstart/public_html/codagogy.com/blog/Slim/Slim.php 
    on line 180 

(source of Slim.php)

Slim 类中失败的地方是它第一次尝试使用“Slim”命名空间,所以它让我相信实时服务器和命名空间存在问题。

根据文档,从 php 5.3 起应支持命名空间。

是否有其他与服务器相关的配置可能导致命名空间使用失败?

【问题讨论】:

  • 这两台服务器是什么操作系统?
  • 直播:CENTOS 5.8 x86_64,本地:最新的 MAMP Pro
  • 这就是我的怀疑。 OSX 文件系统不区分大小写,但 CentOS 文件系统(很可能)不区分大小写。因此,您的目录可能有错误的大小写,并且自动加载器无法找到正确的文件。
  • 原来我找错树了。我认为自动加载/命名空间存在问题导致找不到环境。原来找不到它,因为它不存在...文件名“Environment.php”出于另一个原因在我的 git 忽略文件中,因此它从未上传到 live。鉴于我使用 git 来镜像项目,我不认为要检查实际上不存在的文件。如果一个帖子的答案最终过于本地化,该怎么办?关?删除?

标签: php namespaces slim


【解决方案1】:

我知道 Susan 解释说在这种特殊情况下这是一个 .gitignore 的事情(请参阅问题 cmets)。 但是我想从@Brenton Alker 复制/粘贴与本地 OS X (MAMP) 和实时 Linux 设置超级相关的答案:

OSXs 文件系统不区分大小写,但 CentOS 是(大多数 可能)不是。因此,您的目录可能有误 情况下,自动加载器无法找到正确的文件。

仅在这个 sprint 中就发生了两次。我认为这可能会帮助像我一样在谷歌上搜索“在本地主机上工作的命名空间,而不是现场”的其他人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-01
    • 2016-09-16
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多