+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

PhpStorm 2019.2: JetBrains випустила другий мажорний реліз PhpStorm цього року

PhpStorm 2019.2: JetBrains випустила другий мажорний реліз PhpStorm цього року

JetBrains представила другий мажорний реліз PhpStorm цього року!

Огляд релізу можна переглянути на сторінці “What's new”.

Завантажити нову версію PhpStorm можна на сайті JetBrains або за допомогою Toolbox App. Як завжди, доступна 30-денна пробна версія. Повну ж версію можуть використовувати власники діючої підписки на PhpStorm або All Products pack, а також безкоштовно студенти і розробники проектів з відкритим вихідним кодом.

PHP 7.4: типизовані властивості

PHP 7.4 обіцяє бути найкрутішим і найбагатшим на нові можливості релізом з часів PHP 7.0! Подивіться на всі прийняті в ньому RFC.

Найочікуваніша фіча це, звичайно ж, типізовані властивості, і PhpStorm 2019.2 вже повністю їх підтримує! Включаючи підсвічування, виведення та резолв типів, а також всілякі перевірки.

Якщо ви спробуєте покласти у властивість щось не те, PhpStorm відразу про це попередить.

А ось щоб підготуватися до міграції на PHP 7.4, який вийде наприкінці листопада, у PhpStorm є швидкі фікси. Для оголошення типу можна натиснути Alt+Enter на властивості без типу і вибрати Add declared type for the field. PhpStorm визначить тип властивості на основі інформації в PHPDoc, дефолтному значенні або декларації типу аргументу, якщо властивість впроваджується через конструктор.

Оператор ??= (null coalesce assign)

Новий короткий оператор присвоєння з перевіркою на null досить зручний у разі громіздких виразів.

У PhpStorm, само собою, підтримується синтаксис, але ще є швидкий фікс Alt+Enter для того, щоб замінити ?? там, де це можливо:

Оператор розпакування (...) у масивах

PHP підтримує розпакування аргументів за допомогою оператора  ще з версії 5.6. У майбутньому релізі PHP оператор можна буде використовувати і в масивах:

PhpStorm проаналізує використання оператора на коректність і переконається, що ви розпаковуєте тільки масиви або об'єкти Traversable і не намагаєтеся помилково зробити щось, що не підтримується інтерпретатором PHP

Автозастосування регулярних виразів у PHP

У попередніх версіях PhpStorm регулярні вирази в PHP-коді за замовчуванням ніяк не підсвічувалися і відображалися як звичайні рядки. Звичайно, можна було впровадити мову RegExp вручну, але не робитимеш це за всім проектом.

У PhpStorm 2019.2 додано повну підтримку регулярок в PHP! Це означає, що там, де в коді використовуються функції preg_*, шаблони підсвічуватимуться та перевірятимуться на валідність.

Більш того, тепер можна протестувати регулярний вираз прямо в IDE! Наведіть вказівник на шаблон, натисніть Alt+Enter і викличте Check RegExp.

Підсвічування дубльованого коду на льоту

Пошук дублікатів у PhpStorm є вже досить давно, у меню Code → Locate Duplicates. Якщо ви поки що його не пробували, спробуйте — і здивуйтеся, як багато повторень може бути в проекті!

У цьому релізі аналіз на дублювання вийшов на новий рівень і працює на льоту прямо в редакторі. Якщо ви багаторазово скопіювали або випадково написали однакові шматки, то дізнаєтесь про це миттєво.

Ви зможете перейти до іншого дубліката або переглянути все списком в окремому вікні

Нова інспекція називається Duplicated code fragment і включена за умовчанням. Поріг чутливості можна встановити в розділі Preferences | Editor | Inspections | General | Duplicated code fragment → PHP. А в Preferences | Editor | Duplicates можна встановити, які елементи будуть ігноруватися при пошуку дублікатів, наприклад, можна не враховувати різні імена змінних, методів або властивостей, а також значень констант.

Підтримка формату PHPT

Чи хотіли б контриб'ютити в сам PHP і приєднатися до PHP Internals? Найкращий спосіб — почати з документації та тестів! На щастя, для цього немає потреби знати C. Тести для PHP пишуться у спеціальних файлах .phpt. По суті це текстовий файл, розбитий на кілька секцій, деякі з яких можуть містити PHP-код.

Так ось у PhpStorm 2019.2 є і підтримка phpt-файлів! Секції підсвічуються, PHP та INI автоматично впроваджуються там, де потрібно, працюють переходи на зовнішні файли у відповідних секціях.

Запуск Composer через будь-який PHP-інтерпретатор

Раніше для запуску Composer завжди був потрібен локальний інтерпретатор PHP. Проблема в тому, що його може бути зовсім або оточення може не відповідати продакшену. Тепер у PhpStorm 2019.2 запускати Composer можна через будь-який інтерпретатор, налаштований на IDE. Наприклад, через Docker, Docker-compose, Vagrant або, скажімо, віддалений сервер SSH.

Щоб спробувати цю можливість, виберіть Remote Interpreter в налаштуваннях Preferences | Languages ​​& Frameworks | PHP | Composer.

Перегляд для структурного пошуку (Structural Search)

Структурний пошук, або коротко SSR, це потужний інструмент, який дозволяє шукати шматки коду не тільки як текст, але як маленькі синтаксичні дерева, при цьому вказуючи типи вузлів або інші фільтри. Спробуйте його: Edit → Find → Search Structurally…

Проблема зі структурним пошуком у тому, що описати шаблон пошуку може бути нетривіальним завданням. У PhpStorm 2019.2, на щастя, тепер можна побачити підсвічування в реальному часі в редакторі. Немає необхідності запускати пошук знову і знову, щоб налагодити шаблон.

Уявіть, наприклад, що ви хочете знайти всі виклики певного методу класу, але тільки такі, в яких як параметр передається об'єкт іншого певного класу. Звичайним пошуком знайти таке буде складно, а з SSR на раз!

HTTP клієнт

Підтримка формату cURL

Майже всі веб-інструменти для розробки та документації зараз надають можливість скопіювати запит як cURL-рядок.

Тепер цей рядок можна використовувати у PhpStorm. Створіть файл з розширенням .http або новий HTTP-request scratch file за допомогою клавіш Cmd+Shift+N (Ctrl+Shift+Alt+Insert), а потім вставте рядок запиту cURL. Вона автоматично буде конвертована на повний запит, і далі можна зручно експериментувати із заголовками та іншими параметрами запиту.

Світло синтаксису для більш ніж 20 мов

Якщо у вас у проекті є файли іншими мовами програмування крім PHP та JavaScript, то PhpStorm 2019.2 ви будете приємно здивовані підсвічуванням синтаксису для Python, Ruby, Go та цілої пачки інших мов. Це працює з коробки і додаткових налаштувань не вимагає.

PhpStorm, як завжди, включає в себе всі оновлення з WebStorm і з DataGrip. А повний список змін можна знайти в дуже великих release notes.

Інші новини

Найкраща ціна