我发现当 Zend 尝试自动加载一个不存在的文件时,它会抛出一个我无法在 try/catch 块中捕获的错误。当我使用时class_exists
也会发生这种情况。我已经通过破解 zend 解决了这个问题:
if ($once) {
if (!@include_once ($filename)) {
throw new Exception("Failed to include $filename");
}
// include_once $filename;
}
else {
if (!@include ($filename)) {
throw new Exception("Failed to include $filename");
}
// include $filename;
}
注释掉的行是zend 的原件。现在我可以捕获无法包含文件时引发的异常。任何人都可以提出一种更清洁的方法来做到这一点,它不涉及黑客 zend 吗?
我在 Zend 版本 1.11.10 上,有问题的代码是 Zend_Loader 第 146 行。
谢谢。