PHP автозагрузка ловит новое исключение
У меня есть следующий код для автоматического включения моих классов:
spl_autoload_register(function($class) {
require $class . '.php';
});
Затем у меня есть сторонний класс (в пространстве имен помощников) со следующей строкой:
throw new Exception('...');
Проблема в том, что функция автозагрузки пыталась найти файл с именем helpers\Exception.php. Поэтому я изменил свою функцию выше:
spl_autoload_register(function($class) {
if ($class != 'helpers\Exception') {
require $class . '.php';
}
}
Но затем выдает исключение, сказав, что класс helpers \ Exception не найден. Я был бы признателен, если бы кто-нибудь помог мне показать, как я могу заставить его просто отобразить исходное исключение, выброшенное в третьем классе.
2 ответа
Мне удалось заставить это работать. Я должен был добавить следующее в начало класса:
use Exception;
Другое решение состоит в том, чтобы изменить:
throw new Exception('...');
чтобы:
throw new \Exception('...');
Но это решение требует изменения каждого случая повсюду.
Вам нужно сбежать \
персонаж. Попробуй это: helpers\\Exception