PhpStorm – интегрированная среда разработки на PHP. Phpstorm книги


Обзор PHPStorm

Профессия обязывает каждый день писать на php и поэтому первый важнейший инструмент после головы для меня является среда разработки (IDE). До сих пор я сидел на Zend 5.5, но столкнувшись с PhpStorm 1.0 от чехов русских с JetBrains сразу перешёл на него.

Понятно что редактор - дело субъективное и многое зависит от проектов с которыми вы работаете. Zend 5.5 мне нравился удовлетворительной скоростью и простым доступом к ftp. Я знал что там ещё были всякие дебаги, интеграция с SVN и sql-серверами но практически их не смог применить. Я пробовал Netbeans, Aptana и PDT, Zend 6 но во все они медленные особенно при индексации файлов и монстроидальный интерфейс с кучами кнопочек. Поэтому и начну сразу с недостатков.

Недостатки

  • Невозможно сразу начать работать при медленных (>5 сек) сетевых соединениях (VPN) и обращению к файловой системе
  • Синхронизация файлов при deployment'е удалённого проекта не совмещает различия, а просто перезаписывает удалённые файлы, что делает невозможным изменение файлов двумя пользователями. Есть возможность ручной проверки одиночного файла, но сверять каждый раз самому неудобно.
  • Подвисание процесса при долгой индексации дополнительных папок к проекту и отсутсвие полоски прогресса этого процесса. При обычной индексации всё-таки прогресс показывается и может уходить на задний план.
  • Редактирования по FTP нету. Можно файлы читать, но для полноценного редактирования надо делать локальную копию проекта с настройкой синхронизации и deployment'а, а при переходе с одного IDE на другой и большом количестве проектов ждать скачивание каждого - жуть
  • Автосохранение файлов сразу во время редактирования, хотя и компенсируется "локальной версией изменений файла", однако многим может быть непривычно при переходе из других IDE.
  • Глупое автодополнение тэгов в html режиме (вечно мне добавляет comment тэг!). В редактировании php кода методы не подсказываются автоматически а только с нажатием Ctrl+Space, видимо из-за погони за скоростью.
  • Импорт remote-проекта без возможности фильтра ненужных папок. Точней этот фильтр появляется в настройках после того как вы скачаете весь проект. Очень удручающая ситуация когда есть папка с кучей картинок которые не нужны. Конечно есть фильтр типов файлов с масками, но это не совсем то
  • Пугающие настройки. Их просто много. Разве что они понятней чем в Эклипсе - сразу разбиение на настройки проекта и настройки IDE.
  • Непривычность клавишных связок (hotkey binding) - например у меня несколько раз возникала ситуация когда я двигался назад по истории изменений (Undo), а потом хотел вернуться нажимая Ctrl+Y и вместо этого терял Redo-историю потому что Ctrl-Y на самом деле удаляет строку
  • Мало плагинов. Из серверов управления задачами только Jira и собственній youtrack. То же касается систем версионирования (Есть CVS, SVN, git, perforce). В основном они пишутся для общего редактора IntelliJ idea, а php-просто как частный случай

Как у всех..

Редактор визуально очень похож на все существующие IDE - динамические панели как у eclipse но с меньшим визуальным шумом иконок. Тут собственно меню, панель дерева файлов, панель структуры класса, внизу дополнительные панельки для todo, версионирования, иерархий и удалённого редактирования (появляются по мере необходимости).

Очевидно что редактор не компилятор и не настолько умён что-бы понимать переменные при использовании extract() или при переменных с динамическими именами через $$var — анализ этого на лету просто нереально ожидать и соответсвенно в проектах такие дела подсвечиваются как ошибки деклараций переменных. То же касается закриптованных частей через Ioncube или Zend guard.

Про автодополнение с Ctrl+Space я уже говорил, так же тут и Ctrl+click работает для перехода к собственно декларации метода или класса. И Ctrl+D дублирует строку. Тут есть и закладки строчек через Ctrl+Shift+цифра. Есть тут и поддержка PHPdoc и @todo синтаксиса.

Основные фишки

Главные прелести редактора - хорошая скорость в обычном редактировании текста - ничего не прыгает, не задумывается на три секунды покуда я печатаю.. Вобщем есть "основа" которая дополнена мелочами в которых и кроется секрет хорошего блюда:
  • Поиск классов Ctrl+N и файлов Ctrl+Shift+N в том числе и со звёздочками (wildcard). Очень полезно и быстро, потому что файлы как правило разбросаны в разных ветках дерева и консоль всегда оперативна
  • Скролл при поиске или при навигации по своим закладкам строк через Ctrl + цифра. Очень помогает не потеряться и интуитивно понимаешь в какую сторону файла ты прыгаешь.
  • Рефакторинг имён файлов, классов и методов во всём проекте и/или поиск их использования. Потому что часто просто боишься поменять старое название на более информативное потому что не помнишь где это используется, а искать как фразу через Ctrl+F запаришься
  • Подключение внешних папок. Скажем если у вас 10 проектов в которых используется повторяемый фреймворк (PEAR к примеру) или закриптованный код, то можно подключить внешнюю папку чтобы IDE понимала пространство имён
  • Версионирование. Как встроенная история изменений, так и отлично встраиваемый SVN со всякими диффами, определённо лучше TortoiseSVN.
Приятно удивили и некоторые мелочи
  • Поддержка smarty шаблонизатора. С одной стороны для меня это позитив - я его использую. С другой стороны так же обойдены стороной остальные фреймворки для которых тоже неплохо бы иметь плагины что-ли для быстрого запуска комманд генерации кода и тп.
  • Иерархия вызовов метода и вызываемых методов в hierarchy блоке
  • Статус и ручная чистка памяти в статус-баре - сразу говорит о заботе
  • Локальная история изменений файла
  • Перетаскивание строки или целого выделенного блока с сохранением табуляции через Ctrl+Shift+Up/Down вместо того что-бы делать Copy-Delete-Paste с ручным форматированием
  • Вернуться к последнему месту редактирования Сtrl+Shift+Backspace

Кроме этого в редакторе есть простор для изучения до которого я ещё не дорос:

  1. XDebug для профилирования скриптов.. Для удалённого проекта надо что-бы расширение на сервере было установлено, поэтому всюду использовать нельзя.
  2. PHPUnit для автоматического тестирования кода
  3. SASS для более гибкого написания css

kurapov.ee

PhpStorm – интегрированная среда разработки на PHP

PhpStorm – это интегрированная среда разработки на PHP с интеллектуальным редактором, которая глубоко понимает код, поддерживает PHP 5.3-7.2 для современных и классических проектов, обеспечивает лучшее в индустрии автодополнение кода, рефакторинги, предотвращение ошибок налету и поддерживает смешивание языков.

Сотни инспекций заботятся о верификации кода, анализируя проект целиком во время разработки. Поддержка PHPDoc, code (re)arranger, форматтера кода с конфигурацией стиля кода и другие возможности помогают разработчикам писать опрятный и легко-поддерживаемый код.

Поддерживаются передовые технологии веб-разработки, включая HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, шаблоны Jade, Zen Coding, Emmet, и, конечно же, JavaScript.

PhpStorm включает в себя всю функциональность WebStorm (HTML/CSS редактор, JavaScript редактор) и добавляет полнофункциональную поддержку PHP и баз данных / SQL.

Ключевые возможности

  • Интеллектуальный редактор PHP кода с подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету
  • Поддерживает PHP 5.3-7.2, генераторы, сопрограммы и все синтаксические улучшения
  • PHP рефакторинги, code (re)arranger, детектор дублируемого кода
  • Поддержка Vagrant, Composer, встроенный REST клиент, Command Line Tools, SSH консоль
  • Поддержка фреймворков (MVC view для Symfony2, Yii) и специализированные плагины для ведущих PHP фреймворков (Symfony, Magento, Drupal, Yii, CakePHP, WordPress, Joomla! и многие другие)
  • Визуальный отладчик для PHP приложений, валидация конфигурации отладчика, PHPUnit и Codeception с покрытием кода (поддержка PHPUnit 6), а также интеграция с профилировщиком
  • HTML, CSS, JavaScript редактор. Отладка и модульное тестирование для JS. Поддержка HTML5, CSS, Sass, SCSS, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Harmony, Emmet и других передовых технологий веб-разработки
  • Полный набор инструментов для фронтенд-разработки
  • Поддержка стилей кода, встроенные стили PSR1/PSR2, Symfony2, Zend, Drupal и другие
  • Интеграция с системами управления версиями, включая унифицированный интерфейс
  • Удаленное развертывание приложений и автоматическая синхронизация с использованием FTP, SFTP, FTPS и др.
  • Live Edit: изменения в коде можно мгновенно просмотреть в браузере без перезагрузки страницы.
  • PHP UML
  • Интеграция с баг-трекерами
  • Инструменты работы с базами данных, SQL редактор
  • Кросс-платформенность (Windows, Mac OS X, Linux)

Что нового

Некоторые из заметных изменений в PhpStorm 2018.2:

  • Пользовательские шаблоны постфиксного автодополнения, позволяющие заменить исходное выражение любым другим выражением. Постфиксное дополнение существовало и раньше, но в версии 2018.2 появилась возможность вручную создавать произвольные шаблоны для замены выражений.
  • Автодополнение FQCN для классов: в версии 2018.2 автодополнение срабатывает при указании части пространства имён класса (FQCN), а не только его имени. К примеру, чтобы обратиться к классу “\Illuminate\Auth\Events”, достаточно напечатать “IAuE”.
  • Перемещение методов экземпляра класса – с помощью нового рефакторинга стало возможным перемещать методы экземпляров класса в классы, являющиеся параметрами этого метода или полями текущего класса.
  • Структурный поиск и замена, позволяющие находить заданные структуры кода, к примеру, вызовы указанных методов или безусловные возвраты из цикла foreach. Шаблоны структурного поиска могут работать как инспекции и проверять стиль оформления и качества кода в автоматическом режиме.
  • Улучшенные возможности работы с SQL-фрагментами: в версии 2018.2 улучшена работа с объединёнными строками, а также добавлены автозамена значений констант и поддержка строковых выражений, отформатированных с помощью функции sprintf.
  • Новые инспекции:
    • Обнаружение вызовов классов, функций и методов, которые обращаются к расширениям PHP, не прописанным в composer.json.
    • Проверка стандартного порядка следования элементов (тип элемента перед его именем) в PHPDoc-тегах @property, @param, @var и т.д.
    • Проверка правильного порядка задания аргументов в декларациях функций и методов (опциональные аргументы после обязательных)

В новой версии значительно усовершенствована поддержка веб-технологий: добавлена поддержка TypeScript 2.9 и 3.0, запуск тестов с покрытием, возможность выделения и преобразования React-компонентов, расширенная интеграция Angular CLI, глобальное отслеживание файлов и перезапуск невыполненных тестов.

В JavaScript и TypeScript добавились контекстные действия Implement interface, Create derived class, Implement members of an interface or abstract class, Generate cases for switch, Iterate with for..of и т.д. При работе с Vue-проектами PhpStorm теперь предлагает автодополнение для событий.

Платформа IntelliJ обновила интерфейс IDE: полностью переработаны иконки, добавлена поддержка тёмного оформления заголовков окон в macOS и реализована поддержка Touch Bar на ноутбуках MacBook Pro.

В поддержке систем контроля версий произошли следующие изменения: стало проще разрешать конфликты при слиянии и пользоваться вкладкой Log, появилась возможность просматривать репозиторий по состоянию на выбранную ревизию, добавилась поддержка нескольких GitHub-аккаунтов и возможность пропустить диалог Push.

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

Подробнее о новой версии можно узнать на странице Новые возможности PhpStorm 2018.2, не забудьте также скачать IDE для своей операционной системы.

jetbrains.ru

PhpStorm или осваиваю свою первую IDE

Раздел: Программирование Дата публикации: 20.04.2011

Идея поста появилась ещё 7 января этого года. В тот день, когда я установил PhpStorm. Это был серьёзный шаг для меня, ведь это была моя первая IDE (Интегрированная среда разработки (англ. Integrated Development Environment)).

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

Поэтому для меня начало использования IDE является началом новой эры на моём пути программиста.

Почему PhpStorm

Потому что я долго наблюдал за отзывами о различных IDE, сопоставлял их, слушал советы знакомых программистов. В конце концов чаша весов сильно перевесила в пользу PhpStorm.

И я решил – пора.

Главные плюсы использования IDE

Пожалуй, я уже могу говорить об основных преимуществах работы с IDE, в частности PhpStorm.

Я до сих пор не использую многих возможностей (а тем более дополнительных модулей) этой прекрасной программы. Но даже самый основной функционал делает мою работу быстрее, а код чище.

Ускорение разработки

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

Сюда же можно отнести автоматически закрывающиеся кавычки и теги, адекватную работу с табуляцией (с одной или несколькими строками сразу), возможность открыть любую страницу в любом браузере.

Улучшение качества кода

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

Система не позволяет удалить файл без проверки его использования. Если он подключается в другом месте, то вам будет предложено удалить и все упоминания, либо отменить удаление.

Удобство программирования

Удобна возможность «откатить» изменения. По каждому файлу хранится история изменений. Можно подключить систему для контроля версий, но я пока не пробовал работать с VCS.

Конечно же удобная расцветка синтаксиса, а также сворачиваемые теги, классы, функции.

Удобное управление проектами. По сути проект лежит полностью на вашем компьютере и вы можете сохранить изменения в любой момент, залив обновлённые файлы на хост по FTP. При создании проекта все файлы подтягиваются с сервера на локаль.

Если хочется работать в онлайне, то можно поставить в настройках автоматический аплоад изменений. Перебой связи не помешает работе, разве что оттянет загрузку обновлений на сервер. Также удобно поставить настройку автоматической загрузки при изменениях извне. То есть, вам нужно просто забросить или изменить файлы в директории проекта (в Total Commander, например), они загрузятся на сервер без вашего участия.

Ещё есть удобное сравнение локальной версии и той, что находится на сервере (вы же можете быть не одним разработчиком, работающим с сайтом).

Есть ещё инструменты для дебага (отлова ошибок в коде), но их я также пока обошёл стороной.

Итоги

Удобная и функциональная система. Позволяет существенно улучшить качество кода и увеличить скорость разработки.

Система подходит для написания любого кода и вёрстки. Поддерживает всё, что нужно мне: PHP, JavaScript, HTML, CSS.

Многие функции и настройки я вообще не трогал, поэтому написать конкретные советы и туториалы пока не могу (да и надо ли?). В этом опусе я выразил свои впечатления от первого знакомства с IDE и основные функции, которые мне понравились.

Вот эта статья про PhpStorm мне понравилась, можете почитать её. Даже с иллюстрациями.

Напоминаю

О том, что меняюсь ссылками с хорошими блогами.

А также, что здесь можно заказать дешёвую рекламу своего качественного блога.

А вот и обмен

Гилязетдинов Руслан на своём блоге разместил небольшой курс под названием CSS3 для начинающих. На данный момент опубликовано несколько частей курса, пользуйтесь поиском. Верстальщикам будет интересно.

Канат Гайлимов рассуждает о качественной серьёзной разработке. А именно, об архитектуре модульных web-приложений. Тема будет интересна для более менее состоявшихся веб разработчиков – не новичков.

Автор блога: Алексей Опанасенко

Поделиться ссылкой:

neverlex.com

Продуктивное использование PhpStorm :: Блог веб разработчика

Коротко о главном

Речь в статье идет о последней на момент ее написания версии, восьмой. Так же я использую PhpStorm на Windows, поэтому и все хоткеи буду писать с упоминанием Ctrl и Alt. Если у вас Mac, скорее всего вместо них можно жать CMD, либо придется порыться во вкладке Keymap настроек.

Автогенерация кода

Довольно банальная функция, но многие о ней и не подозревают. Поставьте курсор внутрь класса и нажмите Alt + Insert. Появится меню автогенерации кода. Можно создавать конструкторы, геттеры/сеттеры (сразу для нескольких выбранных вами свойств), PHPDoc блоки, а так же реализовывать методы интерфейсов или переопределять методы родительского класса.

Очень удобно работает реализация/переопределение методов. Автоматически именуются параметры и создается PHPDoc. Так же можно по-быстрому вызвать только переопределение методов (Ctrl + O) или только реализацию иинтерфейсов (Ctrl + I).

Понажимайте Alt + Enter в различных положениях курсора. Например, на неимпортированном классе, это позволит автоматически импортировать его. А вообще это мега сочетание, которое умеет очень многое.

Форматирование кода

Совсем очевидная фича, но некоторые о ней не знают. По нажатию Ctrl + Alt + L осуществляется автоформатирование текущего файла, либо выбранного фрагмета кода. Если в дереве проекта выбрать файл и нажать то же сочетание, то он полностью будет отформатирован. Можно так же выбрать папку и будет отформатирована все файлы в этой папке.

Рефакторинг

PhpStorm умеет кучу всего: выделять одинаковые участки кода в метод (Extract -> Method), выделять участки кода в переменную (Extract -> Variable), выделять поля и константы. Просто покапайтесь в разделе Refactoring. Или есть прекрасная статья на эту тему.

Переключение проектов

Стандартный механизм переключения проектов не слишком удобен. Я советую использовать Frame Switcher для быстрого переключения между проектами.

Задачи

Если вы еще не пользуетесь системой контроля версий в PhpStorm, то самое время начать. Именно потому, что в этой IDE реализована потрясающая система разбиения текущих изменений на задачи (tasks).

Допустим, вы работаете над неким функционалом, уже изменен десяток файлов и идет второй день работы без коммитов. Прибегает манагер и просит "нувотпрямщаспоправьэтуфигню". И тут начинаются неудобства. Нужно запомнить какие изменения относятся к вашей основной задаче, а какие относятся к этой мелкой правке, чтобы правильно разбить изменения на два коммита.

PhpStorm решает эту проблему за вас. Все что вам нужно, создать отдельную задачу (Task) или Changelist (не понял в чем между ними принципиальная разница, если кто-то объяснит, опубликую), назначить его активным и сделать быструю правку. При этом вы увидите, что PhpStorm отнесет изменения в файлах к вашей активной задаче. А если вы случайно затроните файлы из другой параллельной задачи, то увидите предупреждение.

На самом деле нужно попробовать, это безумно удобно. В коммит автоматически попадают все файлы из текущей задачи, а в сообщение коммита подставляется ее название.

Быстрое открытие файла аля SublimeText

По Ctrl + N можно быстро открыть файл с нужным классом, а по Shift + Ctrl + N вообще любой файл по имени. А через Ctrl + Shift + Alt + N можно найти любой "символ", т.е. переменную, функцию и т.п.

Метки в проекте

Нажимая Ctrl + Shift + 0..9 можно оставлять в проекте метки. Чтобы быстро перейти к какой-либо метке нужно нажать Ctrl + 0..9 (номер метки).

Быстрое обертывание

Выделив фрагмент кода и нажав Ctrl + Alt + T можно быстро обернуть блок в if-else или какой-либо цикл. Так же при редактировании HTML срабатывает Ctrl + Alt + Enter. Это обертывание с помощью Emmet.

Сравнение двух файлов

PhpStorm имеет очень няшное окно diif-а, т.е. сравнения двух файлов. Если в дереве проекта выделить пару файлов и нажать Ctrl + D, то можно сравнить содержимое этих двух файлов.

Список использований

Не уверены, используется ли где-то ваш метод? Поставьте на него курсор и нажмите Ctrl + F7. Появится список использований метода, переменной или другого "символа". Можно использовать Ctrl + Alt + F7, тогда список появится в виде контекстного меню, что иногда чуть удобнее.

Быстрый переход к объявлению

Все вкурсе, что по Ctrl + клик можно перейти к определению "символа". Но по нажатию Ctrl + Alt + Left можно вернуться назад. А по Ctrl + Shift + Backspace можно вернуться к последнему месту редактирования кода, если вы вдруг заблудились в длинном скролле.

Мульти буфер обмена

Как часто бывало, что скопированное в буфер терялось из-за еще одного копирования? PhpStorm из коробки запоминает все что было в буфере и можно использовать Ctrl + Shift + V для вставки прошлых значений.

Автогенерация спрайтов

Автоматическая генерация CSS спрайтов не доступна из коробки, однако настраивается за 15 минут без особых проблем. В итоге вы получите полностью автоматическое создание PNG спрайтов с готовыми CSS/LESS стилями.

akuma.su

Базовые фишки phpStorm, которыми я пользуюсь каждый день

В продолжение предыдущей статьи, хотел бы поведать о том, чем же он так круче остальных IDE и редакторов, какие именно его особенности позволяют мне ежедневно экономить время на разработке и работать эффективнее.

Редактор

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

  1. Часто в битриксе приходится видеть кашу из html/js/php (а иногда даже sql кода)? Причем активно в файле может присутствовать jquery, а php код местами написан с использованием альтернативного синтаксиса управляющих структур? Тогда вы оцените, как редактор отлично расправляется с этой кашей! Также он умеет смешивать языки, например, когда вы генерируете какой-то js или html код с помощью php, то в генерируемом фрагменте будет подсветка синтаксиса, а также помощник по составлению языковых вставок.
  2. Автокомплит. Он просто работает, и все. По всевозможным (немагическим) функциям проекта. phpStorm сканирует все файлы вашего проекта, запоминает все классы и методы, функции, переменные, константы. Но с некоторыми методами может быть беда. Например — всевозможные битриксовые ::GetList(), для которых автокомплит не работает (связано с кривой реализацией в ядре). Однако это можно очень легко исправить, подключив к проекту содержимое репозитория matiaspub/bxApiDocs как отдельную библиотеку: File — Settings — Project Settings — PHP и в Include Path добавляем путь к папке modules. Библиотека содержит все ядро целиком для редакции кластера с фиксами, позволяющими использовать автокомплит нормально (тут есть один минус — если у вас в проекте индексируется ядро. а оно у меня индексируется. то при попытке перейти к просмотру кода метода возникает проблема двойной имплементации, и можно случайно перейти в код этой библиотеки вместо настоящего кода ядра)
  3. Сниппеты. Особо крутого тут ничего нет, сниппеты они итак везде есть. Но этот пункт я выделил не случайно. Для шторма и эклипса есть набор сниппетов, описывающих дефолтные компоненты битрикс. Забрать можно тут. Иногда бывает удобно.
  4. Статический анализ кода. Всегда подсвечиваются явные ошибки в коде. Ошибки видно как в коде, так и в полосе прокрутки — если там есть красные кусочки — это первое, что вам нужно посмотреть перед тем как делать коммит. Кстати, иногда раздражает, что он подсвечивает гигантские статические вызовы ::GetList, говоря о том, что метод используется в статическом контексте, тогда как не является статическим (и правильно делает, что подсвечивает), но можно гибко настроить статический анализ и какие-то отдельные инспекции отключить (но я не рекомендую этого делать).
  5. Поддержка языковых конструкций вплоть до последней версии языка, поддержка Emmet (он же бывший Zen Coding), поддержка js библиотек, css и пр.

К минусам редактора могу отнести некоторую тормознутость.Бывают глюки, при которых невозможно по неведомой причине сменить кодировку файла (очень редко). Иногда бывает глюк, что убираешь какую-то кавычку в строке, шторм сразу же меняет подсветку дальнейшего кода, но если поставить кавычку обратно, то он может предыдущую подсветку не сменить.Еще мне откровенно не хватало minimap файла после Sublime Text, но как оказалось — есть плагинчик, называется CodeGlance.Еще, к сожалению пока не могу найти, как сделать автокомплит по произвольным строкам (ключи массива например) 🙁

Навигация

У вас есть почти мгновенный поиск по всему проекту. Если хотите найти абсолютно любую строку — жмете Ctrl+Shift+F — в диалоговом окне вводите нужную строку, и IDE находит вам все вхождения данный строки в проекте. Эдакий аналог grep, только интереснее — в результатах поиска IDE классифицирует найденное вхождение строки, указывает в каких файлах и в какой строке, сколько раз встречается искомая подстрока.

Но не всегда удобно искать именно строку. Часто мы знаем, что ищем именно класс или функцию, или какую-либо другую сущность в понятии phpStorm. Для поиска везде и вся подобных сущностей существует хоткей Shift*2 — всплывающее окно поможет быстро перейти к какой-либо сущности.

Про полезные хоткеи я когда-нибудь напишу отдельный пост, попробуйте сами посмотреть в документации и поэкспериментировать с ними.

Кроме упомянутых выше возможностей поиска, можно удобно ориентироваться внутри открытого большого файла. Иногда бывают ситуации, когда нужно отредактировать какой-то кусок кода, перейти к другому в этом же файле, пролистав глубоко вниз, а затем вернуться обратно. Крутить колесо — долго и муторно. Поэтому можно вернуться к предыдущему редактируемому куску хоткеем Ctrl+Alt+Shift+вверх или вниз. Также есть GUI стрелка, которую можно вызвать, кликнув по маркеру, который добавляется напротив отредактированной строки — появится контекстное меню встроенной системы контроля изменений phpStorm, где кликом по стрелке можно перейти к отредактированным областямКрайне удобной для меня оказалась возможность мгновенного перехода к определению сущности, если зажав ctrl кликнуть по ней в редакторе — супер удобно! Если у сущности определен phpDoc комментарий, то можно просмотреть его через ctrl+Q, опять же когда курсор мыши над сущностью. Поэтому коллеги — обязательно комментируйте все свои наработки с помощью phpDoc — это совсем не сложно, тогда как всем остальным это может сильно упростить жизнь.

Кстати о phpDoc — есть его полная поддержка. После написания функции или метода, например, достаточно написать над функцией строку  /** и нажать tab — основной блок для phpDoc комментария будет сгенерирован. Вам нужно будет только добавить описание для вашей сущности и задать типы переменных (в случае с функциями). В случае изменения функции, ее параметров или чего либо, что могло бы повлиять на phpDoc — редактор подсветит блок комментария и предложит обновить его.

Вообще говоря — phpStorm всегда будет помогать вам, подсвечивая или подчеркивая какие-то странные на его взгляд моменты. Лучше обращать на них внимание и следовать рекомендациям.

Вернемся к навигации. Введя простой хоткей Ctrl+L можно быстро перейти к определенной строке и символу в документе. Нужно ввести номер строки и номер символа (если надо) через двоеточие.

Есть еще одна крутая вещь — навигатор по структуре файла. Если файл структурирован (html/xml, css или php класс, например), то такой файл можно просмотреть в виде древовидной структуры. Это крайне полезно при разработке классов, т.к. клик по названию метода в этом дереве производит быстрой переход к методу, да и наглядно видно. какие методы с какими данными и в каком контексте работают.

Аналогичное дерево можно вызвать во всплывающем окне над редактором с помощью ctrl+f12, а чтобы добавить его в левую панель, нужно зайти в меню View -> Tool Windows -> Structure

Интеграция с инструментами разработки

Все полезные для себя интеграции я рассмотрю отдельно, т.к. каждый про каждый инструмент можно написать многое. А сейчас только поверхностно пробегусь по тому, что использую я в своей работе.

git

Куда ж без него. До моего знакомства с phpStorm я активно использовал продукт Atlassian SourceTree, который по мнению множества разработчиков считается одним из лучших OpenSource продуктов в данном сегменте. Не могу ничего сказать плохого в адрес этого инструмента, он до сих пор служит мне верой и правдой, с удовольствием использую его каждый день. Но и в phpStorm есть возможность работать с репозиторием, и некоторые аспекты сделаны удобнее, чем в SourceTree. При включении интеграции с git в phpStorm появляется чейнджер веток (правый нижний угол), в тулбаре changes (ctrl+9) можно отслеживать изменения файлов, просмотреть diff для файла, оттуда же сделать коммит и push. На вкладке log этого тулбара можно просмотреть дерево коммитов

SSH консоль

Раньше пользовался Putty, теперь пользуюсь встроенной консолью в phpStorm. Для подключения к серверу нужно пройти в меню Tools -> Start SSH Session …. Появится всплывающее окно, предлагающее подключиться к одному из существующих серверов, забитых в настройках, либо сделать одноразовое подключение (к сожалению. не сохраняется, или я просто пока не знаю как его сохранить 🙁 ). Удобно, не выходя из IDE, можно работать с консолью на сервере.

Отладка

Одна из самых крутых возможностей современных php IDE — возможность отладки. Про это я тоже напишу отдельный пост. Это крайне удобная вещь — кто кодил на компиллируемых языках в IDE (например в Visual Studio, или какой-нибудь Delphi) — тот меня поймет. Можно пошагово прогнать свое приложение, выяснить как ведет себя приложение на том или ином этапе работы, поддерживаются брейкпоинты, можно просмотреть стек вызовов для каждого момента времени, просмотреть и даже подменить значение переменных! Все это очень круто и сильно ускоряет процесс отладки. Даешь бой print_r’ам и var_dump’ам! (шутка, конечно и о них забывать не стоит). Must have для php разработчика.

Также, если вы пользуетесь профилированием от xdebug, то в phpStorm встроен анализатор логов профайлера. Можно загрузить файлик в IDE, просмотреть там лог вызовов, и тут же перейти к нужным функциям, отрефакторить их и т.д. Круто!

Restful Tester

Перед началом работы с каким-то внешним API хочется попробовать предоставляемые методы вживую. Да и при отладке необходимость быстренько составить запрос с авторизацией возникает. Однако не имеет смысла писать какой-то код — можно воспользоваться соответствующими инструментами. Ранее я пользовался для этого плагином для Chrome — Postman, однако теперь нужды в нем нет, я могу сделать запрос прямо из IDE.

File watchers

Всем известно, что для клиентской оптимизации надо сжимать js и css файлы. Однако, когда процесс выкладки на продакшен сервер не налажен, приходится делать оптимизацию скриптов и стилей вручную, например, с помощью google closure compiller в онлайне или локально. Данный инструмент позволяет автоматизировать подобные процессы. Если говорить грубо — инструмент следит за определенными файлами, и как только поступают какие-то изменения в файл, он сразу же извлекает команду, которая делает какое-то действие. Например для сжатия js файлов можно настроить File  Watcher’а так, чтобы при каждом изменении файла он создавал его копию с суффиксом {имя файла}.min.js, в котором будет содержаться сжатая копия файла.

На самом деле инструментов гораздо больше, чем я тут описываю. Тут тебе и vagrant для разворачивания виртуалок, и composer для добавления в проект библиотек из этого замечательного менеджера пакетов, и интеграция с PHPUnit, Behat, для организации TDD и BDD, и возможности рефакторинга, и еще многое многое другое, всего в рамках одного поста не описать. Но буду касаться иногда разных классных инструментов в последующих своих постах, т.к. есть еще много всего, о чем хотелось бы написать.

Ну и плагины

Для того, чтобы найти нужный плагин, необходимо зайти в File — Settings — IDE Settings — Plugins. На этой странице показан перечень установленных плагинов. Кнопка Browse Repositories … отправит вас в список всех возможных плагинов.

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

  1. BitrixStorm. Плагин — недоделка (к сожалению), который упрощает навигацию по проекту. После установки нужно указать директорию основного шаблона сайта проекта, и вам станут доступны быстрые переходы к компонентам и шаблонам проекта (ctrl+ЛКМ по имени компонента или шаблона). Частенько валится … (
  2. CodeGlance — добавляет minimap для файла — писал об этом выше.
  3. RegexpTester — можно не выходя из IDE проверить работу регулярки
  4. PHP Advanced AutoComplete — добавляет автокомплит для ряда функций

 

Спасибо за внимание!

zhurov.me

Разрушаем мифы о PhpStorm — Блог Романа Парпалака

Илья Бирман написал:

Я много лет использовал редактор кода «Сублайм-текст». Он не дотягивал по функциональности даже до «Эдитплюса», которым я пользовался на Винде больше десяти лет назад, но казался мне самым приятным и продвинутым из того, что есть на Маке. Всякие ИДЕ я не рассматривал — они уродские и тормозные. Однажды я видел, как разработчик переименовывал файл в «ПХПШторме». На экране несколько секунд заполнялся прогрессбар. Нет, спасибо.

Давайте я тоже поддержу межблоговые дискуссии и отвечу Илье. А ответить есть что.

Уже лет 5 я использую PhpStorm как один из основных инструментов. Как такое могло произойти, если среды разработки — уродские и тормознутые? Давайте разбираться.

Переход на PhpStorm

Раньше я программировал в Notepad++. Вершина его функций — поиск и замена по всем файлам в папке. Казалось, этого вполне достаточно. Мне тоже нравилась скорость работы редактора, и я тоже относился к IDE снисходительно. «Я и так знаю названия функций, нахрена мне тормознутая подсветка синтаксических ошибок в коде?»

Я не помню, что заставило меня скачать PhpStorm. Мне могли понадобиться какие-то возможности, которых не было в плагинах к Notepad++. Или я заинтересовался, что же всё-таки находят в нем люди. Помню только, что он подсвечивал желтым слишком много подозрительных мест в моем коде.

Тем не менее, PhpStorm у меня прижился. Как автор опенсорсного продукта — движка S2 — я получил бесплатную лицензию. С тех пор PhpStorm стал одним из основных моих инструментов.

Миф №1: PhpStorm тормозит

PhpStorm как IDE отличается от текстовых редакторов:

  • индексирует файлы проекта, чтобы потом мгновенно искать по ним, не перебирая каждый раз содержимое;
  • распознает контекст: понимает, где названия функций, где локальные переменные, где пути к файлам и т. д.

PhpStorm как редактор не хуже Notepad++. С той же скоростью появляются буквы и перемещается курсор. Поиск работает мгновенно за счет индексации. Анализ кода работает в фоне и может отставать от курсора. Но в этом большой проблемы нет, потому что сначала программист пишет код, а потом смотрит на подсказки среды разработки.

Миф №2: переименование файла занимает в PhpStorm несколько секунд с прогресс-баром

Зависит от того, что нужно программисту. PhpStorm способен искать вхождения старого названия файла по всему проекту и по контексту определять, нужно ли это название изменить. Альтернатива в обычных редакторах — поиск и замена по всем файлам — занимает несколько минут рутинной работы. Экономия времени на два порядка.

Поиск старого названия файла можно отключить прямо в окне переименования. Тогда файл переименовывается мгновенно.

Миф №3: PhpStorm «устанавливать и настраивать год»

Установка проходит не сложнее установки любых других программ. Первоначальной настройки PhpStorm не требует. Может открыть любую папку как проект без предварительных вопросов.

Настройку дополнительных инструментов делаете тогда, когда они вам понадобятся:

  • путь к git.exe для работы с гитом;
  • доступ к БД, чтобы делать запросы из среды разработки;
  • доступ на сервер по SSH/FTP для загрузки файлов проекта.

Пошаговая отладка через Xdebug настраивается сложнее из-за самой природы веб-приложений. Но если не хотите пользоваться пошаговой отладкой с просмотром значений переменных по всему стеку вызовов, отлаживайте по-старинкевар-дампами, никто не запрещает :)

Миф №4: PhpStorm «выглядит как говно»

Вкусовщина, конечно. Нормально он выглядит. Внешний вид работать не мешает. Чтобы не приводить зря громадный скриншот, покажу заодно «git blame»:

В следующий раз я расскажу о возможностях сред разработки на примере PhpStorm, которых нет в редакторах, но которые повышают продуктивность работы за счет автоматизации рутины.

written.ru