| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Эффективная отладка приложений |
| Автор: nns2009 16.3.2011, 16:36 |
| До этого я писал в основном клиентские приложения и с отладкой проблем не было: часть ошибок сообщалось на этапе компиляции, а для остальных я просто нажимал кнопку "Debug" и начинал выполнять программу по шагам. Но как выполнять отладку программ, написанных на php??? Кроме того, что я не могу выполнить её по шагам, в случае синтаксической ошибки я даже не знаю номер строчки, на которой эта ошибка находится!!! Дело усложняется тем, что я пишу приложение немного, но всё-таки общающееся с facebook'ом, из-за чего отладку можно выполнять только на удалённом сервере. Как посоветуете выполнять отладку? |
| Автор: Clickbeetle 16.3.2011, 19:51 |
| Ну во-первых Zend Studio умеет проводить отладку по шагам и подсвечивает ошибки синтаксиса, и не только она, есть много бесплатных аналогов. Например тот же PHPEclipse http://www.phpeclipse.com/wiki/General/PHPEclipseFeatures. Плюс у компании Zend есть решение и для удаленной отладки, но я бы посоветовал вам в своих приложениях использовать исключения, т.е. в случае ошибки, чтобы срабатывало исключение. Базовый класс Exception в php уже содержит информацию о номере строки, где произошла ошибка, код ошибки и т.д. Плюс никто не запрещает наследовать свои классы исключений, с расширенным функционалом. В приложение же остается только с помощью функции echo выводить информацию из объекта класса Exception. Надеюсь помог, если будут вопросы задавайте. |
| Автор: nns2009 16.3.2011, 21:22 |
Помогло! А имеет ли PHPEclipse удалённую отладку? Вопрос №следующий: Предположим, я разработал приложение, залил его, всё работает, но хочется что-нибудь добавить. Как тестировать приложение на удалённом сервере(должно быть небольшое общение с facebook'ом(получить Фамилию, Имя пользователя)), чтобы при этом не нарушалась работа текущей работающей версии приложения? Есть идея разделять содержимое на 2 папки "Debug" и "Release" и в зависимости от того, передан ли параметр ?debug=true определять из какой папки брать содержимое, но хорошо ли это? Вопрос №более следующий: В предыдущем случае даже после небольшого поправления в файле(забыл ; поставить, к примеру) необходимо перезаливать этот файл на сервер. А имеется ли возможность настроить мой собственный ноутбук как сервер(в целях отладки)? К примеру, фейсбук посылает серверу(удалённому) запрос, удалённый сервер смотрит, передан ли параметр ipToDebug и, если этот параметр передан, перенаправляет запрос на него(на данное ip). А если параметр отсутствует, то выдадим рабочую версию приложения(на удалённом сервере). |
| Автор: Clickbeetle 17.3.2011, 02:44 |
| Для удаленной отладки есть сей модуль : http://xdebug.ru/ По первому вопросу: Лучше на мой взгляд просто сделать бэкап базы данных, приложения. И редактировать рабочее приложение, если что-то пойдет не так, откатитесь. |