自己实际开发过程中发现的,原因待查:
require_once VENDOR_PATH.'/smarty/MySmarty.class.php';
MySmarty为简单继承Smarty类的子类,下面用自动加载的方式引用一个User类加载不进来,提示找不到User类:
$user=new User();
而随意包含其他普通类文件则没有问题:
require_once VENDOR_PATH.'/test.php';
解决办法是不再用任何require_once等方式包含类文件,统一在init.php头文件的自动加载函数中设置搜索路径:
require_once 'includes/init.php';//包含头文件,含以下函数:
function __autoload($class){
//echo 'Test!!!!!!!!!!!!!!!'.'<br>';//输出信息找错误!!!
if(is_file(MDEL_PATH."/$class.class.php")){
echo 'TEST1'.'<br>';
require_once MDEL_PATH."/$class.class.php";
}elseif(is_file(MINE_PATH."/$class.class.php")){
echo 'TEST2'.'<br>';
require_once MINE_PATH."/$class.class.php";
}elseif(is_file(VENDOR_PATH."/smarty/$class.class.php")){
echo 'TEST3'.'<br>';
require_once VENDOR_PATH."/smarty/$class.class.php";
}
}
$user=new User();//再次调用不再报错!