Php 有autoload 的功能簡單來說就是只要寫了個__autoload($class_name)之後,佢會當你嘗試create 一些class時佢會訧下行這個function 你設定了的include file
以下是我的__autoload class
function __autoload($class_name) { global $classesDir; foreach($classesDir as $dir){ if (file_exists($dir . $class_name . '.php')) { include $dir . $class_name . '.php'; } } }
不過如果你自己define 了這個__autoload之後再加上smarty3時行template 是有機會出現Fatal error: Class 'Smarty_Internal_TemplateCompilerBase' not found in smarty_internal_smartytemplatecompiler.php on line 23 的錯誤呢!
最簡單的簡決方法就係改用spl_autoload_register 把自己的autoload function 加上去, 也就是說把原本的code 加為如下,這樣就可以解決那個Smarty的fatal error了.
function __autoload($class_name) { global $classesDir; foreach($classesDir as $dir){ if (file_exists($dir . $class_name . '.php')) { include $dir . $class_name . '.php'; } } } spl_autoload_register('my_autoload');
0 回應:
Post a Comment