Pull to refresh

Comments 50

UFO landed and left these words here
например в симфони довольно обширный debug-log, очень удобно смотреть его в консоли, а не вычленять из лог-файла.
Можно конечно взять демон который будет следить за изменениями, но все же в одном окне гораздо удобнее.
На сколько я знаю в руби есть гораздо более мощное расширение — дополняет chrome-web-tools. Как webprofiler в симфони, только по f12)
То, что расширение дополняет web-tools не делает его более мощным и удобным. У меня изначально тоже был вариант реализации вывода данных и реализация терминала в виде дополнительных табов в Dev tools, но на практике использования это окозалось совсем неудобным, и не столь гибким в реализации.
смысл не только в логах. У вас есть например request-context, подробная информация о шаблонах, запросы в bd. Вот скрин, думаю понятно что это удобно)
image
Всё то же самое есть, c привязкой к контексту, только выводится немного в другом виде:

Я не хочу спорить, у вас отличное расширение, но мне хотя бы по скринам больше нравится расширение ruby.
В частно случае использование для отладки SQL решение для Ruby смотрится и работает конечно намного лучше. Но теперь представьте, если вы логируете не только SQL, а какие-то объекты. И ещё представьте, что у вас там между какими-то запросами проскакивает ошибка. В решении для Ruby вы не увидите между какими запросами проскочила эта ошибка, так же вы не увидите промежуточную информацию по дампу прочих переменных.

Мне когда пришлось выбирать между красотой и универсальностью отображения, то я выбрал универсальность. Решил не обременять пользователя кликами по разным табам. Мне кажется одной JS консоли может быть достаточно для просмотра всех данных отладки, тем более когда в случае с PHP Console они группируются по URL запроса.
Может, есть что-то конкретно с таким видом для sf2?
UFO landed and left these words here
потому что доступ до отладчика не так прост как до chrome-dev-tools
Вы понимаете разницу между логгерами и отладчиками?
UFO landed and left these words here
Отладка PHP скриптов. В частности очень удобно отлаживать AJAX запросы. Вообще тут достаточно много разных функций, для разных целей. Мне кажется при всём приведённом в статье материале у человека занимающегося веб-разработкой не должно возникнуть вопроса подобно вашему.

А человеку не имеющему отношения к веб-деву PHP Console конечно же не может быть ничем полезна…
UFO landed and left these words here
Акцент на AJAX я сделал потому, что 90% библиотек по обработке ошибок в PHP с выводом ошибок в браузер практически бесполезны при выводе ошибок в AJAX запросах.

И я не совсем понял, вы сравниваете PHP Console cо связкой PhpStorm + xdebug на удалённой отладке?
UFO landed and left these words here
Я могу ответить на 100 ваших вопросах т.к. очень хорошо разбираюсь в том как работают удалённые отладчики в том же PhpStorm, и зачем была написана PHP Console и в каких целях используется. Вы можете тезисно изложить свою позицию?

Например: я считаю, что бессмысленно использовать PHP Console, когда есть xdebug+PhpStorm.
UFO landed and left these words here
Ошибку и так сразу видно, вне зависимости от того, AJAX запрос или не AJAX.

А каким образом? Без специальных инструментов в браузере ответ серевера не виден.
UFO landed and left these words here
Ну вот расскажите, каким образом в хроме убедится в том, что при выполнении ajax запроса на сервере не возникло php ошибок. Я пока знаю только один способ:

1. Открыть в devtools вкладку network
2. Выделить нужный запрос
3. Перейти на вкладку response.

Сколько это будет кликов? Что делать если на странице таких AJAX запросов куча?

А в данном случае не придётся ничего кликать. Серверные ошибки отображаются во всплывающем окне.
UFO landed and left these words here
Если нет ответов 500 — нет ошибок.

А почему вы решиши что php ошибка всегда приводит к 500-ому ответу сервера?
UFO landed and left these words here
А причем тут best practice? Вы не работаете с чужим кодом?
UFO landed and left these words here
OnYourLips предлагает вставлять обработчик, который будет пробрасывать 500-ю, и если при выполнении на сайте действия при котором отправляется ajax запрос происходит что-то странное, то лезть в консоль Network, искать там запрос с 500-ой, и если найдёте, то смотреть дамп ошибки в Response запроса.

Всё ведь просто :)
UFO landed and left these words here
В видео нет никакого закадрового текста, только мелодичный саундтрэк. Установка очень простая:

1. Устанавливаете Google Chrome расширение PHP Console.
2. Копируете PHP библиотеку себе на сервер, и подключаете её к своему проекту как это делается в /examples.
UFO landed and left these words here
Remote Execution не получается запустить. В том числе на вашем сервере. Проверил на разных системах.
Окно с консолью появляется, но на Ctrl + Enter никак не реагирует.
Только что проверил — всё работает. Вы результат в JS консоли смотрите? Какой код вызываете?
Пробовал с двух компьютеров(Win 7 & Ubuntu) — везде всё работает. Можно вас попросить проверить, есть ли какие-то ошибки в js консоли расширения? Как открыть консоль расширеня описано тут github.com/barbushin/php-console/wiki/How-to-report-bug-or-feature#attach-google-chrome-extension-javascript-errors

Спасибо
Мне, как и OnYourLips, не совсем понятно что дает это расширение по сравнению со связкой xdebug + netbeans кроме как то, что расширение доступно из консоли chrome?
Ребята, вы оба правы. Xdebug + PhpStorm/NetBeans — действительно много лучше и удобней, чем какое-то там расширение в Хроме. Надеюсь кто-нибудь из вас напишет статью для широкой публики с описанием всех фич, которые даёт эта связка. После этого сможем по существу поговорить в каких именно фичах и в каких случаях то или иное решение является лучшим выбором.

Не обижайтесь только, но пока вы задаёте больше абстрактно-обобщённых вопросов, чем приводите конкретные случаи использования конкретного функционала.
UFO landed and left these words here
Ну просто кроме вас двоих меня пока никто не спрашивал где и как можно этим расширением пользоваться :) Если бы спрашивало чуть больше людей, то обязательно описал бы. Сейчас у меня на это просто времени нет, люди пишут про мелкие баги в Ubuntu, приходится со всеми сейчас диалог вести.

Самый просто пример использования: включаете обработчик ошибок, включаете логирование всех SQL запросов, в случае ошибки наблюдаете что где упало и при каких запросах.

Если у вас в команде есть тестеры, то тоже может быть полезно: включаете обработчик ошибок и отображение Copy to clipboard button. Тестеры проходят сценарии по сайту, всплывает попап с ошибкой, кликают на Copy to clipboard, заводят тикет с описанием действий при которых произошла ошибка и прикрепляют дамп ошибки с трейсом и т.п.
Поймите меня правильно. Я ни в коем случае не против вашего расширения для Chrome. Более того, я считаю что отладчик это очень важный инструмент и рад, что появляются новые приложения призванные улучшить отладку под Web.

Просто вы, представляя свое расширение, не сравниваете его с существующими инструментами для PHP отладки. В результате мне (возможно в силу того, что я только с год работаю над проектами PHP+ExtJs, а до этого всю жизнь только Pascal) не совсем ясно какие преимущества/недостатки имеет ваш инструмент по сравнению со стандартными инструментами для отладки PHP.

Возможно, если бы вы сделали развернутое сравнение, то это бы привлекло большее количество разработчиков к представляемому расширению.
Это обзорная статья посвещённая одному конкретному продукту, а не вопросу: Как лучше дебажиться в PHP. Вы с тем же успехом можете обзор любого другого приложения или устройства на хабре критикаовать мол «А что вы с другими продуктами не сравниваете? А что вы мне тут про функционал новой версии PostgreSQL рассказываете без сравнения с MySQL? А зачем мне переходить на вашу PostgreSQL, если MySQL полностью удовлетворяет моим потребностям?» :)

Если бы я начал проводить расширенное сравнение, давать свою оценку чужим продуктам и способам их использования, то это могло бы привести к очередному бессмысленному холивару. А так каждый сам принимает своё решение.
Лично я использую vim+xdebug для отладки, но на продакшене вывод ошибок в браузер отключен и есть только системный лог. Можно, конечно поискать ошибки и там, но намного удобнее получить уведомление о проблеме прямо здесь и сейчас находясь на данной странице, потому что в логах сайта очень-очень много разных записей и все они нужны. А получить быстро сообщение об ошибке мне нужно, чтобы максимально быстро отреагировать и починить баг. Иначе мне нужно сделать копию продакшена (а это долго) и дебажить уже на копии. Поэтому я выбираю PHP Console.
Хороший инструмент для отладки.
Под Firefox есть похожая связка Firebug + FirePHP.
Спасибо за отличный инструмент. Пробовал привязать открытие файлов в ubuntu 13/vim, но пока не удалось — просто открывает vim без файла. Как настою — опишу как это сделать.

Использую модуль для Drupal, который добавляет эту библиотеку (http://drupal.org/project/pc) и заметил, что не могу запустить дебагер, так как постоянно идут запросы из браузера от расширения Сhrome. Приходится разлогиниваться, чтобы дебажить.

Вопрос: это ожидаемое поведение? Можно ли сделать возможность включать/выключать без необходимости логиниться каждый раз? Или это баг в drupal-модуле?
Кстати, а почему JS-код Chrome extension обфусцирован? Скрыть его все равно не получится, хранится он локально и на скорость работы это не повлияет. Если уж экономить, то стоит предыдущие версии удалить из папки экстеншена. Просто перед добавлением в проект я бы хотел быть уверен, что код не сливает данные на сторону, а обфускация мешает это сделать. Код, кстати, красивый — тут ничего не скажешь.
1. Код не обфусцирован, а сжат при помощи Google Closure с опцией Advanced Optimization.
2. Сжатие кода в данном случае очень даже влияет на скорость его работы и на размер потребляемой оперативки.
3. Т.к. код не обфусцирован, то при большом желании вы можете его проанализировать на предмет скрытой отправки данных.
4. Анализировать код расширения на безопасность бессмысленно т.к. разработчик может просто на 1 день выпустить обновление с «вредоносным кодом», и на следующий день закрыть его новым «безопасным» обновлением.
5. При загрузке расширения на WebStore его код пропукается через гугловый анализатор, который отслеживает всякого рода вредности и при необходимости блокирует расширение.
6. Предыдущие версии расширения у вас на жёстком диске хранит сам Chrome, и в память загружается только последняя версия(ту что я последней загрузил на WebStore).
7. Ну и в конце концов, в расширении стоит ссылка на мой профиль на LinkedIn. Если бы я планировал делать что-то нехорошее с пользовательскими данными, как вы думаете, стал бы я так светиться? :)

Но так или иначе, спасибо за вопрос! :)
Код я смотрел — там все переменные заменены буквами и трудно читать, но изучить действительно можно. Про п.4 я знаю, но всё же привычка делать код-ревью заставляет изучать. Спасибо за подробнейший ответ — я думаю, что даже тем, кто вопрос не задал и не задумывался о безопасности будет полезно это знать.
В данный момент общаюсь с разработчиком этого модуля, по его словам в последней версии всё исправлено. Обновите код модуля и код php-console библиотеки.
Да, всё исправлено. Обновил и модуль, и библиотеку — всё работает! Спасибо.
Sign up to leave a comment.

Articles