我已经开始学习NetBeans,并试图在他们的To-Do示例中实现Smarty模板引擎。当我尝试运行应用程序时,我收到错误:“类”Smarty_Internal_TemplateCompilerBase“未找到”。我发现这是自动加载冲突,因为我和聪明的代码都使用它。这是我的代码:
spl_autoload_register(array($this, 'loadClass'));
public function loadClass($name) {
$classes = array(
'Config' => '../config/Config.php',
'Error' => '../validation/Error.php',
'Flash' => '../flash/Flash.php',
'NotFoundException' => '../exception/NotFoundException.php',
'TodoDao' => '../dao/TodoDao.php',
'TodoMapper' => '../mapping/TodoMapper.php',
'Todo' => '../model/Todo.php',
'TodoSearchCriteria' => '../dao/TodoSearchCriteria.php',
'TodoValidator' => '../validation/TodoValidator.php',
'Utils' => '../util/Utils.php',
'Smarty'=> '../smarty/libs/Smarty.class.php',
);
if (!array_key_exists($name, $classes)) {
die('Class "' . $name . '" not found.');
}
require_once $classes[$name];
}
我很难理解为了使这项工作需要改变什么?
答案 0 :(得分:1)
您应该更改以下代码:
if (!array_key_exists($name, $classes)) {
die('Class "' . $name . '" not found.');
}
require_once $classes[$name];
到
if (array_key_exists($name, $classes)) {
require_once $classes[$name];
}
如果您在自动装带器无法找到课程时停止了脚本,则只会启动自动加载器,如果找不到课程,则无法启动其他自动加载器以检查是否存在类