Локализация ошибок на production
PRODUCTION1

После запуска проектов на продакшн, debug режим, целесообразно отключить установив константу DEBUG в false в файле первичной конфигурации. А в админ разделе включить логирование ошибок на production $sky->s_prod_error=1. При этом трассировка будет отключена, но ошибки будут логироваться в memory.id=4. Смысл в том, что на продакшн ошибок не должно быть в этой ячейке. Если они там появляются - необходимо исправлять код проекта, так, чтобы ошибок не было. После возможно нескольких иттераций, когда ошибки не будут регистрироваться в течение длительного времени, можно установить $sky->s_prod_error=0, отключить регистрацию ошибок, при этом coresky код станет работать немного быстрее.
Для кода крышевания, рекомендуется использовать синоноим инструкции exit - die. Прекращение работы скрипта, после ее выполнения, не регистрируется как ошибка, и информация не попадает в memory.id=4, когда включено логирование ошибок на продакшн. Если нужно чтобы ошибка регистрировалась - используйте throw new Error('описание ошибки').
При прекращении работы скрипта для обычных, не ajax запросов, по инструкциям die или exit (если не приняты специальные меры), или при использовании throw new Error, показывается одна и та же страница "Ошибка 404". В режиме "debug", дополнительно показывается трассировка.
Специальные меры таковы: если перед "exit;" написать: $sky->tailed = true; в STDOUT ничего дополнительно передаваться не будет (страница "Ошибка 404" не будет показана) в callback функции для register_shutdown_function(), которая вызывается в конструкторе объекта SKY.
Наверное, многим привычнее пользоваться PHP функционалом "log_errors", но так как разница в производительности кода coresky небольшая (когда отключено или включено $sky->s_prod_error), настоятельно рекомендуется пользоваться memory.id=4. К тому же, в "log_errors" могут регистрироваться только ошибки PHP, но coresky код генерирует еще много разных ошибок. Функция user_error(), к сожалению не дает возможности передавать глубину трассировки, чтобы верно отображать место ошибки с помощью debug_backtrace(), т.е. не юзабельна. Да, можно было бы передавать глубину трассировки не напрямую через нее в "error handler" класса SKY. но, код coresky, проектируется так, чтобы минимально(!) зависеть от внешних настроек и данных. Разработчику удобно, все необходимое для работы с проектом, иметь в одном месте - на главной странице админ. раздела.
Если вы первый раз используете coresky, для пущей уверенности, можно включить одновременно и ini_set('log_errors', true); и $sky->s_prod_error=1 (устанавливается на главной странице админ. раздела, пользователем "root").
Для кода крышевания, рекомендуется использовать синоноим инструкции exit - die. Прекращение работы скрипта, после ее выполнения, не регистрируется как ошибка, и информация не попадает в memory.id=4, когда включено логирование ошибок на продакшн. Если нужно чтобы ошибка регистрировалась - используйте throw new Error('описание ошибки').
При прекращении работы скрипта для обычных, не ajax запросов, по инструкциям die или exit (если не приняты специальные меры), или при использовании throw new Error, показывается одна и та же страница "Ошибка 404". В режиме "debug", дополнительно показывается трассировка.
Специальные меры таковы: если перед "exit;" написать: $sky->tailed = true; в STDOUT ничего дополнительно передаваться не будет (страница "Ошибка 404" не будет показана) в callback функции для register_shutdown_function(), которая вызывается в конструкторе объекта SKY.
Наверное, многим привычнее пользоваться PHP функционалом "log_errors", но так как разница в производительности кода coresky небольшая (когда отключено или включено $sky->s_prod_error), настоятельно рекомендуется пользоваться memory.id=4. К тому же, в "log_errors" могут регистрироваться только ошибки PHP, но coresky код генерирует еще много разных ошибок. Функция user_error(), к сожалению не дает возможности передавать глубину трассировки, чтобы верно отображать место ошибки с помощью debug_backtrace(), т.е. не юзабельна. Да, можно было бы передавать глубину трассировки не напрямую через нее в "error handler" класса SKY. но, код coresky, проектируется так, чтобы минимально(!) зависеть от внешних настроек и данных. Разработчику удобно, все необходимое для работы с проектом, иметь в одном месте - на главной странице админ. раздела.
Если вы первый раз используете coresky, для пущей уверенности, можно включить одновременно и ini_set('log_errors', true); и $sky->s_prod_error=1 (устанавливается на главной странице админ. раздела, пользователем "root").
Смотрите также:
Новости
7 Jan 2013 GMT Проект SKY. стартовал в интернете.
18 Oct 2018 GMT Обновление null-site MVC.
11 Oct 2018 GMT Опубликовано приложение MED.CRM.SKY..
Статьи
Статус SKY.
Current version: 1.001
Coresky records: 22
Local (DEV) records: 89
Web (all) records: 105
Download: dev.php
Coresky records: 22
Local (DEV) records: 89
Web (all) records: 105
Download: dev.php