Привет! До недавнего времени, как и многое, пользовался NetBeans, так же пробовал перейти на Zend Studio for Eclipse, и в конце концов ушел на PHPStorm. Кто еще ленентся, советую посмотреть, сейчас объясню почему. Прога, не без багов, конечно, но все же выгодно смотрится на фоне Netbeans. Можно скачать демо-версию дней на 45, по-моему, потом купить ключик за 50-200$ или скачать его на террентах. Самое главное достоинство по сравнению с Netbeans- это наконец-то нормальный дубаг. Ура! Можно выделить выражение и навести на него мышой, можно мышой перетащить его в окно Watch, можно в Watch пользоваться кнопками Delete и F2. Также если переменная, на которую вы навели мышь, представляет собой объект, во всплывающем окне, наконец-то, можно нажать "+" и чтобы развернуть его поля. Можно разворачивать и дальше вложенные объекты и массивы. Так же если перемещаться по стеку вызова в окне Call stack, окно переменных показывает переменные, которые были доступны в тот момент, когда происходил вызыв. Короче, недецкий дубаг, как в других языках. Кстати дебаг как PHP, так и JavaScript! Все очень удобно организовано, долго рассказывать, но когда заходишь, сразу понимаешь, что так намного удобнее, чем раньше. Ну все остальное тоже на уровне, автокамплиты, которыми не удивишь, FTP, SFTP- клиенты, локальная история, контроль версий и т.д. и т.п. все на уровне. Не пишу, потому что это все и в NetBeans-е было. А из недостатков, у меня во время отладки с X-Debug апач часто вылетает (Apach+XDebug+PHPStorm 1.0.2 на винде). Что такое, пока не разобрался. Интересно у кого еще такое и как с этим бороться? И еще JavaScript дебаг не работает с точками останова, если их ставить в обычном окне. Чтобы он заработал, нужно запустить дебаг, во вкладке скрипт выбрать нужный файл, откроется его вторая копия и в нем можно ставить Breakpoint-ы. Однако нельзя редактировать Или это я чего-то не допонял. Поборим, я думаю, с NetBeans-ом тоже любовь не сразу строилась. А в целом, советую. На сайте написано, что скоро появится 2.0 Надеюсь, поправят баги.
А нужен ли вообще подобный дебаг на пхп? Мне лично var_dump хватает, если грамотно разбить задачу на более примитивные подзадачи, то ошибок впринципе быть не должно, у меня обычно ; не поставил или еще что то по мелочи...
Сижу на linux'e больше полугода, о том, что за софт нужно платить, я уже давно забыл Пользуюсь стандартным kwrite для разработки вполне хватает Считаю, что лучше Дебагер для php, сам php error_reporting E_ALL display_errors 1
В таком случае вы скорее всего мантейнер какого-нибудь опен-сорс проекта? Для опенсорс разработчиков шторм бесплатен - свяжитесь с ними. А через print_r можно много что оддебажить, но не всегда, гораздо медленнее и неудобнее. Хотя для разработчиков всяких недоцмс вполне подходит В общем объяснять тут что-то смысла нет. Не скажу, что шторм прям так идеален, и тормозов хватат и глюков неожиданных... но на голову выше нетбинса. Насчет дебага с жаваскриптом - мне вот что-то вообще его не удалось запустить Долго не пытался, ибо фаирбага хватает. Но по симптому похоже, что не прописано соответствие uri и файла на диске. А может просто глюк. Попробуй EA для начала.
karlozzz http://ru.wikipedia.org/wiki/%D0%9E%D1% ... 0%BC%D1%8B Каким образом помогут узнать текущие значения переменных либо выяснить, по какому пути выполнялась программа? Про var_dump двумя руками за))) Сам в основном им и пользуюсь. xdebug в нетбинсе настроен, но как-то косячно работает, мне быстрее var_dump написать)
tommyangelo Дебаг (debug) - это просто поиск и исправление ляпов в твоем коде. По-русски это называется отладкой. Можно и так определить. Без вывода ошибки, будет сложно понять, что она вообще возникла))) И ни о каком дебаге тогда и речи быть не может Именно для недо разработчиков так жестко и требуется смотреть и отлаживать порядок выполнения программы, для тех кто умеет разбивать задачу на этапы, а этапы представлять классами, разбитыми на методы труда отследить логику не составляет (архитектура упрощается), поэтому как такового отслеживания и не требуется, достаточно в определенных местах посмотреть значение переменной, допустим, к слову о недоцмс, я разрабатываю коммерческую систему, со всеми современными удобными фишками и наворотами, работает в разы быстрее всяких битриксов, универсальна, большинство проектов не требует даже дописания новых модулей, о вмешательстве в код старых и речи быть не может, мне вполне хватает вар дампа, да и он не так уж часто требуется, дебаг подобной системы занял бы СЛИШКОМ много времяни, очень разветвленная и сложная архитектура
karlozzz В своей системе это может ещё и катит, но когда работаешь со сторонним фреймворком, когда только начинаешь в него погружаться, запаришься var_dump-ами ковырять на 20-30 call-ов в глубину
karlozzz 1)Наверное коммерческая система хорошо покрыта всякими тестами, которые сами по себе уже помогают локализовать ошибку. 2)Ну вот написали один var_dump(). Загрузили страницу. Посмотрели результат. Поняли, что надо глянуть еще пару переменных. Залезли в код. Нашли. Написали. Сохранили. Кинули на сервер. Перезагрузили страницу. Глянули результаты. Поняли что надо посмотреть внутри метода. Залезли в код. Нашли.... и т.д. Дебагер же позволяет если не свести все к одному запуску, то, по крайней мере, сократить количество перезагрузок страницы, а значит время разработки. Он дает возможность сразу посмотреть нужные переменные. Да притом еще и в удобном виде.
есть люди, которые утверждают, что им блокнота хватает. Так что я не удивляюсь, что кому-то достаточно var_dump(). Спорить с ними бесполезно. Мне дебаг нажен. соответствие можно не прописывать, он как-то сам определяет. я сам удивился. Ну и прописывать пытался. работает что так, что так одинаково. А что такое EA?
> А что такое EA? Early Access... что-то вроде беты или даже снапшотов транка. http://confluence.jetbrains.net/display/WI/Web+IDE+EAP Вы извините, но это всего-лишь набор слов. И жизнь с ними имеет мало общего. И когда это чудо можно будет купить?
Система управления не продается, при заказе сайта или прочей лабуды она идет как основа, все доп модули, если таковые требуются навешиваются на нее У каждого свой подход к поставленной задаче, кто то бросается с головой в код, а кто то продумывает прежде архитектуру, самому присущи оба метода, стремлюсь конечно же ко второму, но когда время поджимает то выбора нет) Потом и идет куча говнокода))
karlozzz да тут не надо комметнов, дебаг нужен когда он нужен, а говорить что он не нужен вообще это бред...
Костян Я согласен, что полностью списывать его со счетов не стоит, но все же задача у пхп такая, что практически никогда он не требуется, фактически же ф-я от данных пользователя (если исключить некоторые нюансы), да и намного быстрее будет написать одну строчку, да и xdebug этот дол**** не умеет без гет переменной своей отлаживать (насколько я знаю), а это урл портит и может привести в некоторых случаях к полной невозможности дебага
дебажат конечно все по разному... для меня xdebug - это слишком круто. при прикладном да, удобно баги ловить с помощью ide, для веба - имхо не очень... Я сто лет назад заменил var_dump на запись в файл значений - удобно, в любом редакторе файл этот при очередной итерации обновляется .Все туда валится - не на экран. Зы, в файле поверьте тотже var_dump гораздо лучше смотрится
Код (Text): function debug( $value ) { ob_start(); var_dump( $value ); $text = ob_get_clean(); $text = preg_replace( '~(\]=>\s*)~', '] => ', $text ); file_put_contents( 'имя файла дампа переменных', $text . str_repeat('-=', 55) . "\n", FILE_APPEND); } как то так
Знаете, вы напоминаете мне себя. Какой же это был год... тогда PHP был еще не распространен, и учился под веб писать я на perl. СУБД было тоже роскошью... ну нужно понимать, что и сервера тогда были что-то вроде пентиума-75. И вот писал я всякие поделки... форум, еще что-то на файлах. А СУБД казалось чем-то запредельным, сложным, его и как-то подключать нужно было, через библиотеки какие-то и вобще все это казалось ненужным, огромным, тяжелым... когда есть такая простая и понятная вешь - работа с файлами.
Если NetBeans'ом пользуешься - могу рассказать как нормально запускать, на прошлой неделе потратил часик чтобы разобраться. Прекрасно с ЧПУшками работает
После этого сообщения я просто не имею права не написать сюда. Какое-то время назад я серьёзно взялся за написание CMS для одного из своих проектов. В качестве основы решил взять печенюшку. Разобрал паттерн MVC, начал читать доку по кэйку, описание структуры директорий, диспатчера, контроллеров ... и понимаю, что нихрена не понимаю. Т.е задаю себе вопрос: а зачем? Неужели я ошибался насчет того, что есть фреймворк? Как оказалось - да. Попробовал Zend, поразбирал их довольно-таки сухую доку, в результате CMS я написал по-старому: с нуля. Послал нахер все эти фреймворки, потому что не понимал в них смысла, опыта было недостаточно. Но как только я её написал, я решил опять посмотреть на фреймворки, на этот раз в поле зрения попал Yii. И тут-то я понял, насколько это ахренительная штука и как сильно я ошибался. А как удобна утилита Gii для генерации моделей? А как просто добавляются фильтры, виджеты, действия? До этого я мог упорно не соглашаться с тем, нафиг нужен фреймворк: я просто-напросто не знал. Нет, я конечно был уверен, что я всё знаю, но жизнь как всегда оказалась мудрей. Дебаг - это необходимая штука. Это УДОБНЕЙШАЯ вещь, и если кто-то не пользовался им, то просто-напросто НЕ ПОНИМАЕТ того, что он из себя представляет и насколько криво пишет. Подобно тому, как я думал, что писать свою (а не развернуть на базе фреймворка) - это гуд. Заблуждения проходят с возрастом, точно говорю. Это как писать в блокноте, изображая из себя специалиста. Вот только если тот, кто специалист, пишет в блокноте, это не значит, что тот, кто пишет в блокноте - специалист. Впрочем, видно пока не столкнешься с чем-то действительно серьёзный, а тем более командным, то можно, наверное, и в дримвивере писать и var_dump-ом отлаживать.