Pull to refresh

JetBrains WebIDE — публичная сборка #701 / немного о ZendCon'09 / кое что о неочевидных возможностях

Reading time 3 min
Views 1.5K
И снова «идеальное IDE для PHP» от JetBrains ^) За прошедшее с предыдущей сборки время мы успели обзавестись официальным сайтом, посетить ZendCon'09 и наконец заняться обещанной оптимизацией производительности. Нашлось время и на несколько новых фич. Пока качается билд загляните под кат — кроме обычных подробностей там будет пара слов о ZendCon и о уникальных функциях платформы/WI.




ZendCon'09


Перед конференцией были туториалы — для меня стала открытием сессия PHP on IBM I5. IBM объединила усилия с Zend для того чтобы принести PHP на мейнфреймы. Если оставить в стороне экосистему i5, то для всех остальных это тоже может иметь значительные последствия, особенно если IBM поможет развивать ядро языка. В 5.3 уже появились кое-какие оптимизации но судя по прочим более «взрослым» технологиям основная работа еще впереди.

Кейноут (да и большинство сессий) были очень бодрыйми и оптимистичными — в этом году вышел PHP 5.3, появилась новая ZendStudio (а специально к конференции выпустили и 7.1), продолжается совершенствование всего стека и инструментария Zend, в общем и язык и платформа и сообщество движется вперед :)

Во время ланчей и пока основной народ был на сессиях мы довольно много общались сотрудниками Zend — и даже впечатлили кое-кого из разработчиков ZendStudio нашими технологиями. В свою очередь нам было интересно послушать о том как они занимаются развитием платформы Eclipse и помогают координировать усилия Eclipse Foundation. Все-таки JetBrains это довольно небольшая компания :) Из инженерых вещей было интересно послушать об работе над языковым ядром, а так же автоматическим профилированием (особенно с точки зрения java-web-разработчика с серьезным стажем)

Что нового в этой сборке


Под впечатлением от разговоров с пользователями на ZendCon мы занялись оптимизацией. В качестве «стресс-тестов» мы использовали таких тяжеловесов как ShugarCRM и Magento (хотели попробовать и Битрикс но не нашли версии с открытыми исходными кодами). Буквально первые сеансы профилирования показали что выведение типов производило слишком много «мусора» в памяти, да и могло приводить к зацикливанию (и зависанию) — теперь эти проблемы исправлены. Хочется сразу сказать что это лишь начальная оптимизация и мы планируем серьезно заниматься этим дальше. *Очень* хочется услышать отзывы всех кто проапгрейдился. Если у вас есть конкретные проблемы — пишите любым способом. Я лично обрабатываю весь фидбек.

Новые фичи:
  • улучшена генерация PHPDOC
  • навигация/поиск использований для глобальных переменных
  • распознавание членов класса на основании имени для тех случаев когда выведение типа не возможно
  • поддержка SFTP
  • автодополнение после ключевого слова new
  • пространства имен отображаются в дереве структуры файла
  • квикфикс (Alt-Enter) для определения неизвестных переменных с помощью var

Множество багфиксов, детали в блоге и трекере

К сожалению есть и известные проблемы
  • Наиболее серьезная — деградация: многострочные литералы в этой сборке неверно подсвечиваются как содержащие ошибку WI-494
  • Несколько деклараций namespace XXX; (именно с ";") в одном файле будут ошибочно распознаны как вложенные WI-497
  • переименование переменной удаляет знак $ из имени WI-500

Постараемся выпустить обновление поскорее. Ждите багфиксов, оптимизации и конечно новых фич :)

Кое что о неочевидных возможностях WI


Релиз приближается и мы начали собирать всю информацию о функциях WebIDE в одном месте. Даже если вы уже освоились с редактором рекомендую хотя бы просмотреть список. А здесь расскажу о паре весьма полезных но не совсем очевидных возможностей. Итак, если в вашем проекте PHP используется для генерации XML, JS, CSS, SQL или какого-то иного языка которых поддерживается WebIDE вы можете комфортно работать с помощью следующих функций:

«Внешний» язык для PHP


Для каждого файла или папки можно выставить «внешний» по отношению к PHP язык вместо дефолтного HTML через панель Settings|Template Data Languages. Эта настройка запоминается в проектном файле.

«Внутренний» язык для строкового литерала в PHP


Внутри литерала нажмите Alt-Enter и выберите «Inject Langugage», а затем требуемый язык. Пока что НЕ запоминается. В будущем можно будет указать что *например* первый строковый параметр функции query() — это SQL (и выбрать диалект)

Для обоих случаев будет включена полная поддержка языка — включая комплишн и рефекторинг. Используя эти фичи можно получить полную поддержку любой комбинации языков %)



На этом я заканчиваю и жду любых вопросов и предложений :)
Tags:
Hubs:
+36
Comments 200
Comments Comments 200

Articles