![]() |
|
![]() |
||||||
![]() |
CodeIgniter предоставляет неплохие возможности по обработке ошибок, но мне они показались недостаточными по следующим причинам:
Будем это исправлять =) Обработка исключений (см. ниже вариант без правки файлов ядра)Указываем обработчик исключений в файле /system/codeigniter/CodeIgniter.php рядом со строчкой теперь при возникновении исключения будет вызываться метод _exception_handler2 из файла /system/codeigniter/Common.php.А вот собственно и сам метод: Уведомление по почте и дополнительная информация по ошибкамДля того чтобы админстратор получал уведомление о ошибках на сайте на почтовый ящик, необходимо в файле /system/application/config/config.php указать почтовый адрес администратора: Если вы не хотите чтобы сообщения отсылались - не указывайте этот параметр или оставьте его пустым.Расширяем базовый класс Exceptions - в директории /system/application/libraries/ создаем файл MY_Exceptions.php со следующим содержимым: Не забывайте. что для включения механизма ведения логов необходимо в файле /system/application/config/config.php указать у параметра log_threshold значением '1'. Вы можете скачать исходники (Файлы CodeIgniter.php и Common.php от CodeIgniter 1.7.2) Код довольно простой - думаю что все ясно по исходникам. Если все таки вопросы возникнут - с удовольствием отвечу в комментариях. UPDATE: Добавление обработчика исключений с помощью хуковЗдесь мне посоветовали использовать хуки вместо того чтобы править файлы ядра для вызова кода установки обработчика исключений и самого обработчика - я так и поступил.Для начала надо включить механизм куков, для этого в файле /system/application/config/config.php параметр enable_hooks устанавливаем в TRUE: Затем устанавливаем сам хук в файле /system/application/config/hooks.php пишем: Данный код означает что при старте системы будет вызыван метод addExceptionHandler из файла /system/application/hooks/exception_hook.php. Вот содержимое этого файла: В итоге файлы ядра фреймворка остаются нетронутыми. Скачать новые исходники можно здесь. Павел
Павел
04.11.2009
|
Меню
Подписка на RSS:
Поиск
Облако тегов
.net
array
asp
bash
browser
charset
check
class
clean
convert
count
create
css
curl
database
date
delete
directory
download
element
email
equivalent
extension
file
find
form
format
function
get
height
html
http
ie
image
javascript
jquery
load
mysql
number
page
perl
php
random
scriplet
send
shell
size
sql
string
text
time
url
utf8
variable
vb
visual basic
width
window
xml
xslt
|
![]() |
![]() |
![]() |
||
![]() |
![]() |