Открыть список
Как стать автором
Обновить

Комментарии 45

Посмотрел на изменения и увидел WinSpeak.

Чорт, говорящий дебаггер О.о Зачем такие излишки?
Ну этот WinSpeak просто забавности ради.
Он очень маленький — всего 1 класс на 10 строчек, но работает прикольно.

Это если кто FirePHP не хочет использовать, а под AJAX дебажить и ошибки отслеживать как-то надо, то можно его использовать.
правильно понимаю что тут просто лог ошибок разных? ну тогда вы мой герой, так пафосно представить велосипед…

1. какой толк от ООП если используется туева хуча констант и фсе?
2. какое отношение лог ошибок имеет к «отладке с закрытыми глазами»?
3. есть интеграция с чем-либо?
Ну смотря что понимать под «просто лог ошибок разных». Я считаю, что тут не просто лог, и не просто ошибок разных.

1. В константы если не поняли я просто для примера вынес
2. Отладка понятие растяжимое, в частности речь идёт об обработке ошибок и дебаге
3. Интеграция с чем? С фреймворками другими интеграции нету. Он изначально абсолютно standalone и быстро прикручиваемый чтобы каждый его использовал как хотел.
xdebug уже не доставляет?
Сравнили тоже.
xdebug главным образом ориентирован на профайлинг (выявление узких мест в производительности).

А как вы будете под ним на AJAX-е отлаживаться?
А уведомления на Email/SMS он умеет?
А как вы его вообще сможете использовать если VPS хостинг и он у них не установлен как расширение к PHP?
во-первых с помощью xdebug и нормальной IDE можно поставить брейкпоинт на нужной строчке кода, пошагово выполнить код, мониторя при этом значения переменных. лично у меня с термином «отладка» ассоциируется именно этот процесс.
во-вторых отлаживать проект на хостинге попахивает маразмом, отлаживать его надо до выпуска в продакшн.
в-третьих какая раздница, аяксовый запрос или нет, пхп-скрипт запускается всегда одинаково

а то, про что вы написали, это лишь средство регистрации ошибок. никакого отношения к отладке оно не имеет, ну разве что косвенное, ведь получив уведомление, узнаешь, где искать ошибку и какой кусок кода надо отлаживать
там не только ошибки, а ещё и Lagger_Handler_Debug.

и тупому понятно, что эта библиотека в первую очередь «обработчик ошибок» и лишь в малой степени может использоваться как дебаггер.

про профайлинг и трейсинг я нигде не заикался. xdebug это xdebug и нефиг сравнивать грабли с лопатой
Да, куда же без SMS при дебаге, действительно :)
P.S. замечательно отлаживаю AJAX с xDebug, что я делаю не так?
Всё правильно делаете :)
и главное голос! нет голосовой поддержки, считай калека =)
по-моему тут только логирование всех ошибок и нотисов и уведомление о них разработчика… какой-либо инструмент для отладки я не увидел
Под отладкой понимается дебаг, в частности вывод и логирование пользовательских сообщений. См. Lagger_Handler_Debug
вот вы сами и написали что «вывод и логирование»… а где трейсы, профайлинг т.д.?
Отладка не ограничивается трейсами и профайлингом.

Бибилотеки трейса и профайлинга вообще на PHP противопоказано писать т.к. слишком много издержек и большая погрешность получается. Для этих целей нужно расширения всякие типа XDebug использовать.
О чем вообще статья? Кусок какого то кода без малейших признаков комментариев… Может, стоит всё-таки открыть глаза? :)
Может мне тогда надо было сперва с объяснения синтаксиса PHP начать?
Я то думал на хабре народ достаточно сообразительный, чтобы без комментариев разобраться.

Код кстати и так самодокументируемый(по одним названиям можно всё понять), это вам не ассэмблер.
Кошмар!

А почему нельзя константы в другом каком-нибудь формате получать, тот же ini файл, если уж совсем фантазии нехватает?
Да какая разница что в качестве конфигурации использовать? XML/ini/константы/базу данных — для особо извращённых, вы ключевое слово «Пример» прочитали?
То есть если написать «пример» то можно всякий говнокод выкладывать?

Какой то плохой пример для подражания.
))) а вы судя по профилю на хабре ниразу ничего и не писали.

так показали бы пример как надо классно статьи писать и запостили бы что-нибудь… а то всё только троллите
Ну судя по рейтингу и карме, не такой уж я и тролль(не супер конечно, но в плюсе).
Конечно же лучшая оборона — нападение, вместо того чтобы говорить по существу начался переход на личности.

Просто все плачут что много говнокода вокруг и сами же его выставляют на всеобщее обозрение, этот пост прочитают многие начинающие программисты и решат что «так и надо писать». Не думаю что сложнее будет хранить данные в том же CSV формате, а будет намного нагляднее(меньше времени на просмотр займёт) + меньше места займёт(это не совсем важно в наши дни, но всё же).
я считаю что мой код далеко не «гавно», см. исходники(вы их наверняка даже в глаза не видели)

очень огорчает что на хабре народ в основном делится на пассивных читателей и активных критиков-нытиков. т.е. вот за 2 дня публикации статьи было скачано 50 копий Lagger-а, я даже лично знаю несколько человек, которые теперь внедрили его в свои проекты и остались очень довольны

а народ тут пишет про какие-то трейсеры, профайлеры… ей богу, что за бестолковое сравнение? плюсуют по сути идиотские комменты, по инерции минусуют ответы…

а ведь была проделана большая работа, но тут все такие самые умные, что помимо неконструктивной критики ничего и сказать не могут! хоть бы кто написал, что архитектура библиотеки неправильная или ещё что-то не оптимально сделано, так нет ведь — даже исходников не видели, даже примеры невнимательно просмотрели, а уже чешут руки написать какой-нить злостный коммент))

короче от этой статьи у меня карма только пострадала, но всё равно я буду дальше писать, потому что знаю что большинству мои библиотеки очень помогают в работе… а то, что из 10 возмущённых мнение выскажут все 10, в то время как из 10 довольных только 1-2, то это и ежу понятно
Я думаю по моему профилю более менее понятно, касательно моих предпочтний, мне исходники были в приницпе неинтересны, потому что мне язык php не нравиться как таковой (причём по многим причинам и вполне обоснованным). Я посмотрел просто как же дебажат в другом ЯП, мне интересны сами принципы, ибо языки разные, а методы в основном похожи.

В моём первоначальном комменте я рассчитывал вложить «удивление», нежели какие-то негативные чувства.

Могу поспорить что многие не дошли до исходников именно по той же причине, что я обозначил. Пример кода начинаеться с неудобоваримого конфига, собственно вполне интуитивно возникает стереотип некоторого «говнокода» касательно всего оставшегося.

А насчёт того, почему не пишу… просто пока времени нету, пару тем классных придумал, даже есть набросок, но никак руки не дойдут…
Суть статьи осталась неясна. Зато карикатура позабавила.
Может вам сперва синтаксис PHP изучить?
синтаксис языка тут не причем. из поста только один вывод нужно вынести: автору нужно потренироваться над донесением сути материала. имхо это так
Что только не изобретают вместо того, чтобы отладчик и профайлер настроить.
вот насчет ошибок в php. я сам немного в другой области специализируюсь, посему хочу спросить:
как мне найти ошибку в синтаксисе файла, который подключен по include?

я написал код вроде этого:
<?php 
 error_reporting(E_ALL); 
 ini_set("display_errors", 1); 
 include("admin/admin.php"); 
?>


Естественно, это покажет мне только ошибки для конкретного файла и только для конкретного вызова. А как мне это дело унифицировать?
Заморачиваться на различные дебаггеры и профилировщики не очень хочется. Нет ли какого-нибудь решения, которое просто выведет мне ошибку вверху страницы и прекратит выполнение?
Красивая страница «Упс, что-то случилось!» и попадение ошибки в бд меня не очень интересует: я чаще допускаю просто синтаксические ошибки и мне хочется видеть их при обращении к странице.

Насколько понимаю, ключ решения в правильной конфигурации php. Не подскажете, что надо настроить?
Вообще конечно не очень хорошо так делать, пользователи ваши ошибки будут видеть, а это и некрасиво и небезопасно.

но если очень надо, то

вариант 1:

прописать в php.ini
error_reporting = E_ALL
display_errors = On

вариант 2:
прописывать в .htaccess

вариант 2:
прописывать в .htaccess
php_value error_reporting = E_ALL
php_flag display_errors off
Т.е.

вариант 2:
прописывать в .htaccess
php_value error_reporting = E_ALL
php_flag display_errors on
отлично. Спасибо, это то, что надо
Безопасный способ: tail -F /var/путь-к-логу-ошибок
Я не понял зачем это нужно.
увидев ваш аватар, подумал что у меня монитор грязный :)
Интересно, а как эта библиотека отлавливает ошибки уровней E_FATAL & E_COMPILE? Насколько я знаю при фатальных ошибках php записывает данные об ошибке в файл (указанный в php.ini) и прекращает работу, не давая эту ошибку обработать.
P.S. дефайны и глобалс реальное зло!
ну… как-то отлавливает(см. исходники), стандартными средствами php без каких либо извратов типа парсинга STDOUT

константы это для примера если не поняли, можете их не использовать. а $GLOBALS по мере необходимости, тоже для примера.
можете и без него свою класс-синглтон обёртку для Lagger_Handler_Debug написать, только чего ради))
Хотя бы ради того что-бы не нарушать концепцию лаконичного 100%-го ООП PHP5 кода. Да и смотрелось бы оно гораздо приятнее в виде отдельного класса, который кстати можно было бы включить в проект в качестве примера.
У библиотеки есть своя концепция и ваше мнение с ней противоречит.

Она подразумевает, что в один момент времени может существовать более 1 обработчика (что актуально в сложных системах, в которых на разных уровнях могут разные обработчики с несовместимыми конфигурациями).

Класс-синглтон-обётка для дебагера пишется за 30 секунд, а вы на одну только эту переписку со мной в 5 раз больше времени потратили :)
Не обязательно делать синглтон. Можно просто класс обертку-иницилазатор, все равно смотрелся бы он лучше чем портянка кода с кучей констант. Просто код из примера совсем не ООП стиль :)
Библиотека на 100% ООП, а вот способы её использования уж точно не обязаны в концепции ООП вписываться :)

Примеры использования это совсем другой уровень, там каждый изголяется как ему удобней… хотя понимаю $GLOBALS чуток дико смотрится, но просто не хотел код примера дополнительными классами-обёртками раздувать.
Способы использования конечно не обязаны быть в концепции ООП, но было бы красиво :) Плюс такой пример можно было бы с незначительными переделками использовать в своем проекте, а этот как-то не очень хочется.
Очень не хватает PHPDoc коментов в коде классов
Частично согласен, но думал людям не так критично будет. Теперь вижу, что комменты не помешают. В следующей версии будут :)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.