如何在PHP中的实现之前自动加载接口

时间:2014-10-21 02:05:35

标签: php autoload spl-autoload-register

我使用这些功能自动加载我的过滤器类文件夹:

set_include_path(implode(PATH_SEPARATOR, BASE_PATH.'/protected/core/filter'));
spl_autoload_register();

在filter文件夹中包含以下文件:

-CFilter.php
-CFilterChain.php
-CFilerChainImp.php
-CTTMvcFilter.php

CFilterChain是一个接口,CFilterChainImp实现了它。 CFilter是一个接口,CTTMvcFilter实现了它。 问题是,如果我在Windows上的XAMPP中运行代码,这将自动加载。但是不能在Linux上运行,比如Ubuntu 14.04。 它将在CFilterChain之前加载CFilterChainImp,或者在接口之前加载类。所以它会说CFilterChain接口或CFilter接口没有找到,因为它在类CFilerChainImp和CTTMvcFilter之后加载。 我怎样才能自动加载它们,但首先是接口,然后是类。

非常感谢你!

更新:我之前遇到过错字错误,我已经编辑了问题以使其正确。

1 个答案:

答案 0 :(得分:2)

CFIlter.php

这应该是CFIlter.php还是CFilter.php? (I上的大写不同。)如果文件名的大小写与类名不匹配,则它不能在Linux上加载,因为Linux区分大小写,而Windows不是。