Ну, я разрабатываю фреймворк, и я работаю с классами __autoload
и exception
. Проблема в том, что на PHP 5.2 you can't catch exceptions inside __autoload. Мне нужно поймать их, есть ли способ сделать это? PHP 5.3 it works fine!__autoload и проблема дружбы с исключениями
На моей фреймворке у вас есть папка, содержащая некоторые классы, но пользователь может попробовать загрузить некоторый класс, который не существует. Правильный способ - это тест, если class_exists
, но я не сделаю его необязательным, если пользователь хочет работать с исключениями. Например:
$obj = new NotFoundClass();
В этом примере, если отладочный режим рамок включены, то клиент будет запущен на страницу с ошибкой, объяснить об этой проблеме (класса NotFoundClass не найден в классе реже). Тогда только, если пользователь не поймает вручную эту проблему, я запустится на страницу внутренних ошибок, которые расскажут клиенту об этой неповрежденной проблеме.
Мой текущий код - это то, что вы можете проверить полный код на моем github page или непосредственно в the problematic file для лучшего понимания. Я не знаю, ясно ли я здесь, пожалуйста, поговорите со мной в этом случае.
На первый взгляд я бы сказал: невозможно. Если вы посмотрите в 'spl_autoload_register', возможно, вы получите больше опций. – hakre
Используется как 'spl_autoload_register ('core :: __ autoload');', я предполагаю, что это невозможно на PHP 5.2. –
Я знаю, что он используется симулятором. Однако вы можете зарегистрировать более одного, и вы можете контролировать, какой из них последний. Последний может подделать определение класса и выдать исключение в конструкторе объектов. Это будет имитировать поведение PHP 5.3. – hakre