За последние 24 часа нас посетили 55039 программистов и 1716 роботов. Сейчас ищут 935 программистов ...

PHPStorm

Тема в разделе "Прочие вопросы по PHP", создана пользователем alexey_baranov, 20 дек 2010.

  1. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    Привет!

    До недавнего времени, как и многое, пользовался 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 Надеюсь, поправят баги.
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    50-200$ ради дебага сомнительно ИМХО.
     
  3. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Отличная среда разработки.
    Стоит своих денег.
     
  4. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    А нужен ли вообще подобный дебаг на пхп? Мне лично var_dump хватает, если грамотно разбить задачу на более примитивные подзадачи, то ошибок впринципе быть не должно, у меня обычно ; не поставил или еще что то по мелочи...
     
  5. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    Сижу на linux'e больше полугода, о том, что за софт нужно платить, я уже давно забыл

    Пользуюсь стандартным kwrite для разработки вполне хватает

    Считаю, что лучше Дебагер для php, сам php

    error_reporting E_ALL
    display_errors 1
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Devzirom
    какое отношение
    имеют к дебагу?
     
  7. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    tommyangelo
    Самое прямое, что вы подразумеваете под словом дебаг?
     
  8. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    В таком случае вы скорее всего мантейнер какого-нибудь опен-сорс проекта? Для опенсорс разработчиков шторм бесплатен - свяжитесь с ними.

    А через print_r можно много что оддебажить, но не всегда, гораздо медленнее и неудобнее. Хотя для разработчиков всяких недоцмс вполне подходит ;) В общем объяснять тут что-то смысла нет.

    Не скажу, что шторм прям так идеален, и тормозов хватат и глюков неожиданных... но на голову выше нетбинса.

    Насчет дебага с жаваскриптом - мне вот что-то вообще его не удалось запустить ;) Долго не пытался, ибо фаирбага хватает. Но по симптому похоже, что не прописано соответствие uri и файла на диске. А может просто глюк. Попробуй EA для начала.
     
  9. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    karlozzz
    http://ru.wikipedia.org/wiki/%D0%9E%D1% ... 0%BC%D1%8B

    Каким образом
    помогут узнать текущие значения переменных либо выяснить, по какому пути выполнялась программа?

    Про var_dump двумя руками за))) Сам в основном им и пользуюсь. xdebug в нетбинсе настроен, но как-то косячно работает, мне быстрее var_dump написать)
     
  10. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    tommyangelo
    Дебаг (debug) - это просто поиск и исправление ляпов в твоем коде. По-русски это называется отладкой.
    Можно и так определить. Без вывода ошибки, будет сложно понять, что она вообще возникла))) И ни о каком дебаге тогда и речи быть не может
    Именно для недо разработчиков так жестко и требуется смотреть и отлаживать порядок выполнения программы, для тех кто умеет разбивать задачу на этапы, а этапы представлять классами, разбитыми на методы труда отследить логику не составляет (архитектура упрощается), поэтому как такового отслеживания и не требуется, достаточно в определенных местах посмотреть значение переменной, допустим, к слову о недоцмс, я разрабатываю коммерческую систему, со всеми современными удобными фишками и наворотами, работает в разы быстрее всяких битриксов, универсальна, большинство проектов не требует даже дописания новых модулей, о вмешательстве в код старых и речи быть не может, мне вполне хватает вар дампа, да и он не так уж часто требуется, дебаг подобной системы занял бы СЛИШКОМ много времяни, очень разветвленная и сложная архитектура
     
  11. shurastik

    shurastik Активный пользователь

    С нами с:
    22 фев 2008
    Сообщения:
    285
    Симпатии:
    0
    Адрес:
    Латвия
    karlozzz

    В своей системе это может ещё и катит, но когда работаешь со сторонним фреймворком, когда только начинаешь в него погружаться, запаришься var_dump-ами ковырять на 20-30 call-ов в глубину
     
  12. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    karlozzz
    1)Наверное коммерческая система хорошо покрыта всякими тестами, которые сами по себе уже помогают локализовать ошибку.
    2)Ну вот написали один var_dump(). Загрузили страницу. Посмотрели результат. Поняли, что надо глянуть еще пару переменных. Залезли в код. Нашли. Написали. Сохранили. Кинули на сервер. Перезагрузили страницу. Глянули результаты. Поняли что надо посмотреть внутри метода. Залезли в код. Нашли.... и т.д.
    Дебагер же позволяет если не свести все к одному запуску, то, по крайней мере, сократить количество перезагрузок страницы, а значит время разработки. Он дает возможность сразу посмотреть нужные переменные. Да притом еще и в удобном виде.
     
  13. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    есть люди, которые утверждают, что им блокнота хватает. Так что я не удивляюсь, что кому-то достаточно var_dump(). Спорить с ними бесполезно. Мне дебаг нажен.

    соответствие можно не прописывать, он как-то сам определяет. я сам удивился. Ну и прописывать пытался. работает что так, что так одинаково. А что такое EA?
     
  14. Elkaz

    Elkaz Старожил
    Команда форума Модератор

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    ППКС
     
  15. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    > А что такое EA?
    Early Access... что-то вроде беты или даже снапшотов транка. http://confluence.jetbrains.net/display/WI/Web+IDE+EAP

    Вы извините, но это всего-лишь набор слов. И жизнь с ними имеет мало общего.

    И когда это чудо можно будет купить?
     
  16. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Система управления не продается, при заказе сайта или прочей лабуды она идет как основа, все доп модули, если таковые требуются навешиваются на нее
    У каждого свой подход к поставленной задаче, кто то бросается с головой в код, а кто то продумывает прежде архитектуру, самому присущи оба метода, стремлюсь конечно же ко второму, но когда время поджимает то выбора нет) Потом и идет куча говнокода))
     
  17. alexey_baranov

    alexey_baranov Активный пользователь

    С нами с:
    3 фев 2009
    Сообщения:
    647
    Симпатии:
    0
    Адрес:
    Сургут
    ржу немагу
     
  18. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    alexey_baranov
    аргументы
     
  19. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    karlozzz
    да тут не надо комметнов, дебаг нужен когда он нужен, а говорить что он не нужен вообще это бред...
     
  20. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Костян
    Я согласен, что полностью списывать его со счетов не стоит, но все же задача у пхп такая, что практически никогда он не требуется, фактически же ф-я от данных пользователя (если исключить некоторые нюансы), да и намного быстрее будет написать одну строчку, да и xdebug этот дол**** не умеет без гет переменной своей отлаживать (насколько я знаю), а это урл портит и может привести в некоторых случаях к полной невозможности дебага
     
  21. LeoK

    LeoK Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    43
    Симпатии:
    0
    дебажат конечно все по разному... для меня xdebug - это слишком круто. при прикладном да, удобно баги ловить с помощью ide, для веба - имхо не очень...
    Я сто лет назад заменил var_dump на запись в файл значений - удобно, в любом редакторе файл этот при очередной итерации обновляется .Все туда валится - не на экран.

    Зы, в файле поверьте тотже var_dump гораздо лучше смотрится
     
  22. LeoK

    LeoK Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    43
    Симпатии:
    0
    Код (Text):
    1.  
    2. function debug( $value ) {
    3.   ob_start();
    4.   var_dump( $value );
    5.   $text = ob_get_clean();
    6.   $text = preg_replace( '~(\]=>\s*)~', '] => ', $text );
    7.   file_put_contents( 'имя файла дампа переменных', $text . str_repeat('-=', 55) . "\n", FILE_APPEND);
    8. }
    как то так
     
  23. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Знаете, вы напоминаете мне себя. Какой же это был год... тогда PHP был еще не распространен, и учился под веб писать я на perl. СУБД было тоже роскошью... ну нужно понимать, что и сервера тогда были что-то вроде пентиума-75.
    И вот писал я всякие поделки... форум, еще что-то на файлах. А СУБД казалось чем-то запредельным, сложным, его и как-то подключать нужно было, через библиотеки какие-то и вобще все это казалось ненужным, огромным, тяжелым... когда есть такая простая и понятная вешь - работа с файлами.
     
  24. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Если NetBeans'ом пользуешься - могу рассказать как нормально запускать, на прошлой неделе потратил часик чтобы разобраться. Прекрасно с ЧПУшками работает
     
  25. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    После этого сообщения я просто не имею права не написать сюда.
    Какое-то время назад я серьёзно взялся за написание CMS для одного из своих проектов. В качестве основы решил взять печенюшку. Разобрал паттерн MVC, начал читать доку по кэйку, описание структуры директорий, диспатчера, контроллеров ... и понимаю, что нихрена не понимаю. Т.е задаю себе вопрос: а зачем? Неужели я ошибался насчет того, что есть фреймворк? Как оказалось - да. Попробовал Zend, поразбирал их довольно-таки сухую доку, в результате CMS я написал по-старому: с нуля. Послал нахер все эти фреймворки, потому что не понимал в них смысла, опыта было недостаточно.
    Но как только я её написал, я решил опять посмотреть на фреймворки, на этот раз в поле зрения попал Yii. И тут-то я понял, насколько это ахренительная штука и как сильно я ошибался. А как удобна утилита Gii для генерации моделей? А как просто добавляются фильтры, виджеты, действия?

    До этого я мог упорно не соглашаться с тем, нафиг нужен фреймворк: я просто-напросто не знал.
    Нет, я конечно был уверен, что я всё знаю, но жизнь как всегда оказалась мудрей.
    Дебаг - это необходимая штука. Это УДОБНЕЙШАЯ вещь, и если кто-то не пользовался им, то просто-напросто НЕ ПОНИМАЕТ того, что он из себя представляет и насколько криво пишет. Подобно тому, как я думал, что писать свою (а не развернуть на базе фреймворка) - это гуд.

    Заблуждения проходят с возрастом, точно говорю.

    Это как писать в блокноте, изображая из себя специалиста.
    Вот только если тот, кто специалист, пишет в блокноте, это не значит, что тот, кто пишет в блокноте - специалист.
    Впрочем, видно пока не столкнешься с чем-то действительно серьёзный, а тем более командным, то можно, наверное, и в дримвивере писать и var_dump-ом отлаживать.