Comments 34
Заголовок публикации "Debug 2.0.8" вводит в заблуждение. Предлагаю конкретизировать.
почему не использовать xdebug и профилирование в том же xdebug или xhprof, ну или более современный отладчик который есть из коробки в стабильных версиях php (начиная с 5.6 вроде), http://phpdbg.com/
Еще полезный аргумент в пользу посмотреть sql запросы, так почему бы нормально не настроить логирование? и не посмотреть лог.
Возможно кому то это и удобно, но точно не мне, например один проект на yii, другой на ларе и везде разная отладка, это как отлаживать через var_dump все понимают что плохо, еще есть свой отладчик для symfony и тд.
Еще благодаря таким штукам есть шанс на то что то отвалится, например https://habrahabr.ru/post/322166/#comment_10079130
Это отвалилось не благодаря штуке, а в самой штуке.
Я не хочу сказать что xdebug нельзя и тд, я просто хочу сказать что любой подобный инструмент (о котором говорится в статье) это лишь очень поверхностный анализ, применение которого довольно ограничено и изучения инструментов вроде xdebug, phpdbg или xhprof вполне может окупится и не будет необходимости в использование других инструментов. (скриншот в таске)
Я хочу сказать что у разработки в любом случае бывают отладчики и профилирование, для поиска узких или проблемных мест и их использование гораздо более глубое, чем отладка на уровне приложения.
XDebug не позволяет нормально получить картину по производительности (потому что сам её искажает очень сильно). Им совершенно не удобно собирать и анализировать SQL запросы. Да, есть инструменты под каждую СУБД вроде Neor Profiler, но это всё разные инструменты и надо их запускать десяток и читать каждый отдельно, чтобы получить общую картину. К тому же, не всё можно продублировать инструментом уже готовым. Тот же роутинг, например.
Но лично мне удобней, использовать отладчик если я что то отлаживаю или разрабатываю, если мне надо проанализировать sql запросы, мне удобней изменить логирование и проанализировать лог (если я увижу странные запросы, привет отладчик, при этом лог не только на стороне app но и бд если что), если у меня проблемы с производительностью(или что подобное) использовать profiling tool для анализа, а дальше опять привет отладчик чтобы все улучшить.
Именно этим вызвано мое не понимание к подобным инструментам, я не знаю где его применять, запускать просто если проблема не выявлена то расчехлять инструменты и анализировать там, зачем тогда его изучать? если можно сразу инструментами получить инфу, для мистического экономия времени? так на изучения инструмента уйдет время, помимо этого для другова fw будет другой инструмент(пусть похожий но все же) нет общего стандарта или инструмента и для нового fw изучать новый инструмент, а те подходы что я описал выше, помогают почти всегда, причем даже с разными языками программирования.
Да там изучать нечего. Один тулбар, пять панелек. Настраивать ничего не надо. В том же Symfony не сложнее. Изучается за вечер, а то и меньше.
Ну или я просто не достаточно хорошо знаю ваш инструмент и вы сейчас приведете много удобных примеров, только учитывайте что это будет в группе людей (разработчиков) которые понимают что такое логирование, отладка и профилирование.
Логирование даёт вам лог и не даёт инструментов для его анализа. Ни тебе графиков потребления памяти, ни времени выполнения, ни всех SQL запросов удобно рассортированных по длительности. То есть либо вы собираете себе какой-то набор для анализа, либо долго и нудно читаете логи, тратя в разы больше времени, чем могли бы...
Пошаговая отладка типа XDebug или dbg важна когда нам интересен контекст на каждом шаге. То есть шагнули, подумали, посмотрели переменные текущего контекста и т.д. Когда же нам просто надо посмотреть, как у нас произошло выполнение запроса, остановка на каждом шаге только мешает. Да, есть инструменты типа strace, но пользоваться ими несколько менее удобно. Профайлеры — штука прекрасная, но их надо настроить и уметь использовать. Причём на тот же SQL профайлер один, на PHP другой (да ещё и собирать данные одной тулзой, смотреть другой).
Валится serialize если для User используются какой-нибудь behavior в котором получение данных через функцию сделано. У меня сразу в трёх проектах проявилась((
Панель, конечно, огонь получается. Ещё бы фильтр по используемой памяти сделать в timeline и переключение пользователей. Планируется такое, SamDark?
Какой именно фильтр и что за переключение?
А переключение — просто возможность из панели переключиться на другого пользователя без авторизации. Часто на работе такое использую, особенно когда надо проверять под разными ролями, т.е. пользователя на которого преключаюсь сразу выбираю с фильтром по ролям.
И то и то интересно и нет, мы об этом не думали. Кидайте отдельными issue или pull request-ами в репозиторий.
Фильтр по используемой памяти могу добавить. В какой единице измерения удобнее фильтровать?
Выпустил 2.0.9. Баги поправлены.
А зачем прописывать панель и одновременно отключать её?
Yii 2.0: релиз расширения Debug 2.0.8