道者编程

phpexcel的自动加载冲突问题

phpexcel使用 spl_autoload_register加载文件,如果框架本身也使用了spl_autoload_register加载,就会引起冲突。

解决思路:在加载phpexcel的时候,先注销框架本身的spl_autoload_register,加载完后再开启框架本身的spl_autoload_register。

如:本项目使用了:

spl_autoload_register( 'loadKung' ); 
在PHPExcel中的Autoloader.php的文件

spl_autoload_unregister('loadKung'); //先注销框架本身的
PHPExcel_Autoloader::Register();
//    As we always try to run the autoloader before anything else, we can use it to do a few
//        simple checks and initialisations
//PHPExcel_Shared_ZipStreamWrapper::register();
// check mbstring.func_overload
if (ini_get('mbstring.func_overload') & 2) {
    throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
}
PHPExcel_Shared_String::buildCharacterSets();

spl_autoload_register( 'loadKung' ); //然后开启
 

就这两个地方就行了,既:最前面和最后一条。


最新评论:
我要评论:

看不清楚