Класс для работы с ошибками. И всем связаным с обработкой ошибок
Основа класса - процедуры хранения ошибок и отображения их пользователю. Полученые в результате обработки сообщения хранятся в сессии пользователя до первой возможности их отобразить.
Следует быть внимательным с отображением вывода ошибок на каждой странице, чтобы избежать возможости их накопления и вывода устаревших ошибок
c\error::add($text,$type=self::ERROR,$redirect=false,$header='');
c\error::addError($text,$redirect=false,$header='');
c\error::addWarning($text,$redirect=false,$header='');
c\error::addSuccess($text,$redirect=false,$header='');
Добавляет сообщение в стек сообщений.
$type может принимать одно из значений c\error::ERROR,c\error::WARNING,c\error::SUCCESS. Все ошибки группируются по типам.
$redirect - Наличие редиректа задействует метод переадресации в одном обращении.
$header - Также относится к методу редиректа, который будет описан ниже
c\error::count($type=c\error::ERROR);
c\error::size($type=c\error::ERROR);
Возвращает число ошибок определенного типа в буфере ошибок.
Подразумевается использование данного метода для определения наличия ошибок, с возможностью предотвращения выполнения итоговых данных в транзакции случае наличия ошибок
c\error::errors();
c\error::warnings();
c\error::success();
Возвращает массив из стека ошибок, ошибок типа Warning и успешных операций, при этом очищая его
c\error::header($code);
Добавляет заголовок с указаным кодом ошибки. Поддерживает 404, 500 и 301 коды
c\error::redirect($url='',$header='');
Редиректит пользователя на указаный URL. Через заголовок и Javascript. По завершению функции - скрипт завершается. Подразумевается, что redirect перебрасывает пользователя и логически завершает выполнение скрипта.
Если URL не будет указан - страница редиректит сама на себя. Следует быть осторожным с зацикливанием и использовать редирект без URL только в POST запросах.
Параметр $header позволяет указать одновременно заголовок ответа по функциналу, описаному выше
В режиме отладки скрипт вместо редиректа возвращает страницу со ссылкой на страницу редиректа, чтобы была возможность посмотреть происходящее в консоли
c\error::log($filename,$string);
Добавляет в файл $filename строку $string.
Если файл не сущестствует - создает его.
При записи - происходит блокировка файла от одновременного использования, таким образом - файл не будет стерт при одновременном обращении из нескольких процессоров
Для вашего удобства - вы можете вызывать методы класса через цепочку, чтобы не совмещать действия, делая код более лаконичным
c\error::addError('Ошибка при сохранении')
->log('logs/error.log','Ошибка при сохранении')
->header(500)
->redirect('result-page');
По умолчанию - пользователю представляется вывод ошибок через верстку бутстрапа. Вы можете указать свой собственный способ рендера ошибок, указав файл для отображения в методе
c\render::showAlerts('path-to-file');
Вы также можете самостоятельно настроить место для вызова ошибок внутри скелетон приложения, заглушив вывод на ближайшем уровне, при помощи метода при вызове подстраницы
<?=include c\mvc::viewPage(false)?>
Либо вы можете самостоятельно заранее забрать все ошибки из буфера и самостоятельно их отрендерить
$errorBuffer=c\error::errors(); // перемещает буфер ошибок в переменную
...
if ($errorBuffer){
foreach ($errorBuffer as $error){
echo $error;
}
}
Создано при помощи сервиса Core CMS