От автора: приветствую вас, друзья. Продолжим создание собственного PHP фреймворка. По итогу мы должны получить вполне функциональное решение, а заодно познакомиться с принципами работы современных PHP фреймворков. В данном уроке мы рассмотрим особенности обработки ошибок в PHP и создадим свой класс, который будет обрабатывать все типы ошибок, в том числе и исключения.
В видео версии урока вы найдете ответы на такие вопросы:
Зачем необходима обработка ошибок в PHP?

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать динамичный сайт на PHP и MySQL с полного нуля, используя модель MVC
В курсе 39 уроков | 15 часов видео | исходники для каждого урока
Получить курс сейчас!Как создать класс для обработки ошибок?
Как обработать непойманные исключения?

Разработка веб-приложения на PHP
Создайте веб-приложение на PHP на примере приема платежей на сайте
Смотреть
Интересный урок, вот про обработку фатальных ошибок не знал.
Андрей, здравствуйте:)
Спасибо Вам большое за данные уроки по созданию собственного фреймворка.
Сегодня изучал данный урок и столкнулся с проблемкой.
Вот, например, при вызове несуществующей функции test(), показывает ошибку как исключение и $e->getCode() равен 0, что не правильно.
Я использую php 7.2, т.е. с версии php7 и выше, код работает немного некорректно.
Подскажите, пожалуйста, что нужно поменять в коде, чтобы работало с 7 версии php.
Здравствуйте, Дмитрий. В PHP 7 есть некоторыеособенности в обработке ошибок . Возможно, в каком-то отдельном уроке затрону эту тему, когда вернусь к данному курсу.
Спасибо, надеюсь в скором времени будет урок по данной теме.
Ещё заметил следующее, если допустить сразу 2 ошибки:
1. Ошибку в переменной $response — написать $responce (c вместо s), передаваемой в функцию displayError.
2. И ещё при этом вызвать, например, функцию strlen() в index.php;
Выходит сначала текст ошибки сгенерированный самим php — Notice: Undefined variable: response in W:\domains\test.loc\system\core\ErrorHandler.php on line 48, а затем ниже выводится шаблон dev.php и выводит «… Текст ошибки: strlen() expects exactly 1 parameter, 0 given ….» как и должно быть.
Я думал, что для вывода первой ошибки, тоже подключится вид dev.php.