Вот как я это сделал, немного изменив:
function classNameToPath($className) {
// Add your code which converts a class name to a relative path and returns it
// For example Databases_Connection => Databases/Connection.php
}
function __autoload($className) {
$classFile = classNameToPath($className);
$allIncludePaths = preg_split("/:/", get_include_path());
foreach($allIncludePaths as $includePath) {
if (file_exists("${includePath}/${classFile}")) {
require_once($classFile);
return;
}
}
throw new Exception("Class not found {$clasSName}");
}
Это позволяет вам обернуть вашу "основную" функцию в блок try, где вы можете перехватить эти исключения и получить stackTrace изисключение и повторить его внутри <pre>
элементов, например.Должен любить, что вы должны кодировать все эти вещи самостоятельно в PHP;) Ну, даже если вы не поймаете исключение класса, не найденного, PHP все равно будет ловить их и автоматически отображать трассировку стека, только не в <pre>
, так что это будетбольшой беспорядок в одной строке, если вы видите его в своем браузере.