我正在使用ZF2作为库。我有一个非常标准的spl_autoload_register
实现,如下所示:
set_include_path(join(PATH_SEPARATOR, array(
get_include_path(),
ROOT . DS . 'library',
ROOT . DS . 'application',
)));
spl_autoload_register();
其中:
define('DS', DIRECTORY_SEPARATOR);
define('ROOT', dirname(dirname(__FILE__)));
在我的Mac上,一切正常。在我的CentOS服务器上,不。我唯一一次看到像spl_autoload_register
这样的问题不喜欢的东西就是我试图使用CamelCasing等时。显然,事实并非如此。我正在尝试加载:
\Zend\Config\Config
现在,我的目录结构如下所示:
/application
/controller
/model
/objects
/dao
/weeeeeeee
/view
/template_html
/library
/core
/Zend
/Config
你明白了。
那么,为什么这不起作用?
编辑:请告诉它不是在寻找config.php而不是Config.php ......
答案 0 :(得分:2)
spl_autoload
区分大小写。所有类都映射到小写文件名。是的,这太疯狂了。谷歌php错误#49625和#48129的一些背景故事。
解决方案:
重命名一切都是不现实和愚蠢的,我不想再次重新发明轮子,但我很幸运能够使用Composer的自动加载器加载自定义库。
Composer有一个ZF2 package,但你可以通过在composer.json
文件中添加自动加载定义来手动加载你的作品:
{
"autoload": {
"psr-0": {"Zend": "library/"}
}
}