我尝试设置一个开发环境,其中我的服务器环境由运行 centos 6.3 的虚拟机模拟,并且开发是从主机操作系统完成的。应用程序代码(codeigniter 应用程序)位于挂载到 /home/foo/Desktop/code/app 的共享文件夹中,我在 apache 中创建了一个虚拟主机来服务这个应用程序。
在开发方面, git 用作 VCS 。
问题是在加载帮助程序时包含两个文件。例如,我在应用程序/帮助程序中有一个名为 my_date_helper 的帮助程序。它有两个功能。我自动加载这个助手。
运行此应用程序时,php 会抛出此错误
Fatal error: Cannot redeclare time12to24() (previously declared in /home/mlakhara/code/cosys/application/helpers/my_date_helper.php:9) in /home/mlakhara/code/cosys/application/helpers/MY_date_helper.php on line 11
当我评论这个函数时,它说这些函数是未定义的。
此外,与时间相关的函数会发出警告,告诉我使用 date.timezone 选项设置我已经在 php.ini 文件中的时区。
我假设这两个文件可以以不同的名称包含两次,但是行号暗示了其他内容。(函数在不同的行中声明)。
当从普通文件夹(非共享)提供服务时,应用程序可以正常运行。我从 vn 中删除了 git 并尝试了,但没有任何区别。
可能是什么问题?
---------------编辑 ----------- 从 Magnus Eriksson 的回答中得到提示,我发现我正在自动加载这些“扩展”助手,而不是加载实际的路径和日期助手。这导致获得相同功能的两个副本。但是时区设置的问题仍然存在。
作为一种纠正措施,我还将时间值添加到我的 .htaccess 文件中。但是有没有更好的方法来做到这一点。