Враження від IDE PhpStorm

Вирішив спробувати часто згадувану останнім часом IDE для роботи з PHP від JetBrains , Називається phpStorm. Так як до цього кілька років використовував IDE NetBeans, порівнювати буду з нею. На об'єктивність навіть не розраховуйте, цей пост заснований на особистих враженнях в перші N днів роботи. Деякі недоліки насправді напевно виявляться «фішками» нової програми, просто я в достатній мірі прикипів до дітищу Sun (нині Oracle). Отже, почнемо-с.

  • Виглядає все досить стандартно. Зверху панель інструментів і таби, зліва - допоміжні навігаційні панелі типу project browser.
    Вирішив спробувати часто згадувану останнім часом IDE для роботи з PHP від   JetBrains   , Називається phpStorm

    Основне вікно PhpStorm

  • + Досить зручно працювати з «гарячими» клавішами. У дистрибутиві йде PDF-файл з настройками.
  • - Необхідно вручну прикрутити перейменування файлів по клавіші F2. Це одна з моїх часто використовуваних «гарячих» клавіш, тому зіткнувся практично відразу.
  • - Я звик виділяти текст і вставляти символ лапки (одиночну або подвійну). Netbeans обрамляли лапками виділений текст, а ось PhpStorm тупо замінив текст.
  • + Підсвічування табів. Групуємо файли по масці (це називається scopes) і призначаємо їм різні кольори. Також в дропдауне «View as:» є можливість фільтрувати файли проекту саме за цими маскам. Однак не знайшов способів імпортувати scopes з проекту в проект (судячи з усього, це ще не реалізовано ) - це великий мінус при використанні фреймворків.

    кольорові закладки

  • + Пошук класів (Ctrl + N) і файлів (Ctrl + Shift + N) на ім'я. Зручна штука для того, щоб підглянути, де, що і як реалізовано.

    Пошук класів по імені

  • ? Насилу знайшов, як підключити сторонні файли, зокрема фреймворк Kohana (system і окремі модулі). Спочатку все додав через settings-> directories, але спостерігати всі підключені папки упереміш з основним проектом не сподобалося. Далі мене зацікавив пункт «external libraries» в project-браузері. Загалом, щоб підключити сторонні папки, треба відкрити settings-> project settings-> php, і там встановити include paths. Досить довго і неочевидно, принаймні в порівнянні з Include Path в Netbeans.

    зовнішні бібліотеки

  • + В контекстному меню файлу є можливість швидко перейти до файлу в Explorer'e.
  • - За замовчуванням змінений файл ніяк не виділяється. Щоб включити цю функцію, йдемо в Settings-> IDE Settings-> Editor-> Editor Tabs. Ставимо галочку на «mark modified tabs with asterisk«. З'явився на Табі значок виглядає убого. Зате якщо в файлі є синтаксичні помилки, вони будуть підкреслені хвилястою червоною лінією а-ля MS Word.

    Зірочка могла б бути і симпатичніше


    Попутно з'ясовується, що одночасно будуть відкриті тільки 10 табів - кожний наступний таб буде закривати найменш використовуваний з уже відкритих. Зате таби можна перемістити вліво або вправо - зручно при широкоформатному моніторі.
    Попутно з'ясовується, що одночасно будуть відкриті тільки 10 табів - кожний наступний таб буде закривати найменш використовуваний з уже відкритих

    Таби справа

  • - Взагалі дивно зроблено поведінку при закритті модифікованого файлу. Замість того, щоб запропонувати зберегти зміни, IDE просто закриває таб. Якщо відкрити його заново, переконуємося, що зміни залишилися, але сам файл ще не збережено. А ось якщо ще і закрити IDE, то зміни зберігаються автоматично. Чи не найочевидніше поведінку.
  • + Закладки-підказки праворуч від відкритого скрипта. Червоні для помилок (зазвичай парсинга, але також червоним виділяються виклики методів без вказівки обов'язкових параметрів), жовті - для потенційних помилок (warnings), сині - TODO-замітки (визначаються редактором автоматично, потрапляють як «правильні» @TODO, так і звичайні todo коментарі). У верхньому правому куті скрипта показується підсумковий квадратик-аналізатор до поточних статусом перевірки. При наведенні на нього можна побачити, скільки яких закладок знайдено.

    аналіз файлу

  • + В правій частині зручні піктограми, що показують, що даний метод перевизначає поведінку свого предка, або ж знайдені нащадки з таким методом.

    Метод перевизначений до нащадків


    Метод перевизначений до нащадків

    Метод переопределяет батьківський

  • - Странновато поводяться підказки (Ctrl + Alt + Пробіл). Вони не завжди розгортаються повністю, залишаючи прокрутку. Хоча начебто місце дозволяє показати всю підказку цілком. Чи не працює підказка для parent ::. І взагалі, все не можу звикнути, що хинти треба викликати вручну (судячи з усього, це зроблено для збільшення швидкості роботи IDE).

    Чомусь хинт не з'являється цілком


    UPD. Поки писав статтю, вийшла нова версія 98.91, в якій з'явилася можливість дозволити автопідказки в настройках (точніше заборонити, тому що за замовчуванням вони включені). Працює, але якось кострубато (може це через підключення двох моніторів?):
    UPD

    Розширена підказка кудись попливла

  • - Іноді їсть забагато пам'яті. При двох відкритих невеликих скриптах споживав аж 200Мб оперативки. Закриття цих файлів, а також закриття проекту нічого не змінили. Тільки заново запустивши IDE, отримав потребляемость 60Мб (і це при відсутності відкритих проектів). При цьому, як і в 1.02, є збирач сміття, який несильно міняє ситуацію Правда, піки споживання пам'яті якісь непередбачувані, IDE може досить довго працювати практично непомітно і ненапряжно.
  • + Сподобалося форматування відступів великих блоків тексту - виділяємо шматок коду і тиснемо Tab (або Shift + Tab, якщо рухаємо вліво).
  • + Подобається підсвічування невикористовуваних змінних сірим кольором.

    Підсвічування невикористовуваних змінних

  • + - Взагалі, в цілому дуже багато різних налаштувань. Навіть не знаю, плюс це чи мінус. Є пошук по налаштувань. Але особисто мені було не дуже зручно кожен раз йти в File-> Settings, щоб щось поміняти. Ті ж Directories або Include Paths можна було і в контекстне меню продублювати.
  • + Вбудована підтримка різних систем контролю версій (Git, SVN, Mercurial). Поки що Git сильно не колупав, але використовувати буду напевно більше як довідковий GUI-клієнт, основні операції все одно залишаться в консолі. На вскидку у мене Git відмовився працювати через Proxy, хоча ті ж плагіни оновлювалися нормально.

    Контекстне меню Git

В цілому, дуже пристойний продукт. Проект постійно розвивається, нові збірки з'являються щотижня. Коли закінчиться тріал, буду думати щодо покупки DEV-ліцензії.

посилання:

PS. Повторюся, «огляд» поверхневий, це по суті перші враження від роботи з IDE, так що прошу сильно не штовхати PS

Автор biakaveron

Може це через підключення двох моніторів?

Дополнительная информация

rss
Карта