Поделитесь, пожалуйста, опытом и советами как Вы производите отладку (debug) PHP сценариев. Может подскажете хорошие статьи на русском языке, а также видео. Про xDebug знаю, но скорее всего этот вариант не подойдет, так как нужно делать отладку на продакшене...
-
И еще вопрос, чтобы не плодить вопросы, как передавать PHP ошибки в Консоль Google Chrome или Firebug? – spoilt Feb 17 '14 at 20:24
-
Возможный дубликат вопроса: Как и какими средствами находить ошибки в PHP коде? – aleksandr barakin Mar 06 '21 at 11:14
3 Answers
так как нужно делать отладку на продакшене...
Если вы делаете отладку на продакшене, то это не продакшен. Виртуалбокс (или аналоги) позволяет решить практически любую проблему с разным окружением.
Если нет возможность вклиниться xDebug'ом, то варианта по большому счету два: типичный var_dump(); die; и осмысленное логирование (логирование каждого чиха с нужной категорией и последующее отключение не очень важных категорий, если все работает нормально; идеально - логировать все подряд, но записывать трейс в файл только при появлении лога с категорией error и выше).
Еще одна очень важная тема - это тесты (PHPUnit). Несмотря на всю простоту, грамотно орагнизованный проект позволит вам вытаскивать баги разве что не перед тем, как вы их написали, и не допустить на продакшен 90% потенциальных дыр.
- 36,151
Даже не знаю как назвать. Для кода который пишу, делаю пачку запросов к методам с проверкой возвращаемых данных. Если результат не соответствует допустимым значениям, пошагово после каждого действия, вывожу данные для нахождения места в котором ошибка.
- 3,247
-
1
-
-
2@terantul, посмотрите PHPUnit. Наверняка у вас тот же функционал (потому что он простой), но у юнита на удивление приятная организация и вывод. – etki Feb 17 '14 at 20:33
Используй фреймворки и вопросы такого плана отпадут. А так да, тестирование. например как я делаю: Делаю роль пользователя на сайте как "developer" и вывожу снизу профайлер если у пользователя такая роль. Получается, что кроме тебя никому не видны никакие дебаг данные, а ты спокойно можешь тестить на реальной нагрузке. Только после теста удаляй эту роль из админки, для безопасности.
- 652
-
1Если над языком, уже разработанным как надстройка для веб-программирования, надо надстраивать ещё и фреймворк, то либо язык какой-то не такой, либо программист. Фрейворки не должны заменять программисту мозги, только облегчать работу. То есть, можно не писать каждый раз тесты с нуля, если можно, к примеру, воспользоваться готовой библиотекой, но надо знать и понимать, как эта библиотека работает. – Risto Feb 18 '14 at 06:18
-
Risto, а Jquery вы тоже не применяете и никаких плагинов на своем сайте? С вашах слов получается так:
"Если над языком, уже разработанным как надстройка для работы с объектами, надо надстраивать ещё и фреймворк"
И хотел бы у вас спросить, чем отличается фреймворк от вашего каркаса с кучей библиотек, на котором вы делаете те же сайты-визитки? Ничем. Только фреймворк написан более грамотными людьми. Спорить с вами не буду на эту тему, т.к. вы сами к этому придете.
– VictorH Feb 18 '14 at 08:35 -
@Victor Halauko
Только фреймворк написан более грамотными людьми.
авторами статей, текстов, постов
Спорить с вами не буду на эту тему
уже начали
@Risto имел в виду, что а) фреймворк не панацея от плохого кода и б) использовать его без знания того, как написать такой фреймворк, не имеет большого смысла
– etki Feb 18 '14 at 08:38 -
Я не о плохом коде. Человек задал конкретный воопрос: Поделитесь, пожалуйста, опытом и советами как Вы производите отладку (debug) PHP сценариев. Я ему дал прямой ответ, что в фрейморке уже вшиты куча инструментов для отладки. Начиная от профайлеров, заканчивая тестами. – VictorH Feb 18 '14 at 08:42
-
Дело в том, что проект очень большой и завершен на 95% и переписывать его под фреймворк сейчас вообще не вариант.... В дальнейшем, возможно, да! – spoilt Feb 18 '14 at 13:11