[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Система инициализации компонентов.
Страницы: 1, 2, 3
twin
Цитата (chee @ 20.10.2015 - 07:06)
Голимая статика, работаешь на уровне глобального доступа, без всяких внедрений зависимостей. Это не по науке.

Я предвосхитил этот наезд. Там все подробно.
Цитата (chee @ 20.10.2015 - 07:06)
Это вылетит с фатальной ошибкой . Это не по науке.

Это вообще пустое место, это я хотел для демонстрации сделать. Там нет кода.
Цитата (chee @ 20.10.2015 - 07:06)
Ты пишешь по ООП науке, а значит нужно применять механизмы сопутствующие этой технологии, я про эксепшены. А у тебя опять, какие-то тараканы

Про этих тараканов позже, когда Oyeme буду объяснять, зачем так.
Цитата (chee @ 20.10.2015 - 07:06)
Это за гранью, я уже знаю что у тебя найдутся отговорки, так что можешь пропустить.

Нет уж, открыл рот, договаривай. Что там за гранью, я не понимаю.
Цитата (chee @ 20.10.2015 - 07:06)
Я больше, чем уверен, что ты скатишься в глобокий говнокод на статике

Про говнокод полегче. Еще посмотрим, у кого он позабористее будет, когда закончу.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
twin
Цитата (Oyeme @ 20.10.2015 - 07:34)
Каким образом я смогу отловить определнного типа ошибку обработать? Скажем из самых низов.

Из каких низов... Это для дебаггера сделано, там есть стек, все прекрасно видно, откуда она и зачем.
Цитата (Oyeme @ 20.10.2015 - 07:34)
display - должно быть константой

Зачем? Это усложнит работу с конфигой. Тем более, где её взять в приложении? Конфига подключается первой строчкой.
Цитата (Oyeme @ 20.10.2015 - 07:34)
@return object - улыбнуло

С этого места по подробнее. Что там веселого? :)
Цитата (Oyeme @ 20.10.2015 - 07:34)
Вы autocomplete никогда не польовались?

Нет, небыло надобности. Надо посмотреть на досуге.
Цитата (Oyeme @ 20.10.2015 - 07:34)
Что это такое вообще? Причем тут error_reporting() ? И для чего нам нужно устанавливавать Exception?

Это нужно для адаптации к штатному обработчику ошибок. Я сто раз давал тебе ссылку, ты видимо ни разу не прочитал. Из раза в раз про эти эксепшены идиотские.

Это нужно для того, чтобы на штатные нотисы или варнинги бросалось исключение. Его отлавливает мой дебаггер. Для этого устанавливается свой обработчик:
set_error_handler([$this, 'setException']);


Этот обработчик бросает исключение.
    public function setException($code, $message, $file, $line)
{
if (error_reporting() & $code) {
throw new ErrorException($message, $code, $file, $line);
}
}

И если приглядеться внимательно, то там можно разглядеть, что меняются местами аргументы. Дело в том, что set_error_handler в callback передает их не в том порядке.

Кроме того, если бросать исключения на триггер и нотисы, то тогда в отчете будет файл и линия выброса исключения, а не кода, который вызвал ошибку. Для этого вот сия затея.

Вот и всё. Теперь мой дебаггер ловит и все неотловленные ексепшены, и trigger_error, и шатные нотисы и варнинги. А это значит, что всё можно красиво слогировать в одном месте. А trigger_error вместо throw нужен чтобы увидеть или слогировать все ошибки сразу. Потому что неотловленное исключение остановит скрипт.

При этом вообще никаких помех отловить ексепшен внутри скриптов. И нет никакой надобности их распределять по уровням. Дебаггер сделает это сам.

Для того, чтобы понять, нужно один раз попробовать. У дебаггера два режима. Для приложения и для самого фреймворка. Если стоит первый, то в стеке цепочка фреймворка игнорируется. Чтобы не путаться в дебрях. Там видно прохождение только по приложению. Если второй режим - видно все полностью. Вот еще раз сфотаю, и давайте закончим тыркать меня эксепшенами.


UPD За грамматику огромное спасибо. :)

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.