Урок 13. Редактор кода IDE PhpStorm. PhpStorm и регулярные выражения


Содержание материала:

Find and replace a string using regular expressions

When you want to search and replace specific patterns of text, use regular expressions. They can help you in pattern matching, parsing, filtering of results, and so on. Once you learn the regex syntax, you can use it for almost any language.

Press Ctrl+R to open the search and replace pane.

If you need to search and replace in more than one file, press Ctrl+Shift+R .

Select the Regex checkbox to enable the regex syntax. If you need to check the regex syntax reference, click the question mark next to the Regex .

Enter a search string in the top field and a replace string in the bottom field.

For example, if you need to find . , type \. in the search field.

PhpStorm can also match a letter case when you enter a range of characters in your search field.

For example, if you want to search for only uppercase characters, type the following in the search field:

To search and replace more complicated patterns, use the structural search and replace.

If the Match Case checkbox is cleared, PhpStorm searches for both lower and upper cases. Select the Match Case checkbox to match the case of the specified range.

When you browse the occurrences, PhpStorm displays the replacement hints, so you can view the potential results before clicking the Replace button.

See RegEx syntax for more details.

Use regex capturing groups and backreferences

You can put the regular expressions inside brackets in order to group them. Each group has a number starting with 1, so you can refer to (backreference) them in your replace pattern. Note that the group 0 refers to the entire regular expression.

Let’s consider the following code:

Open the search and replace pane Ctrl+R .

In the search field, enter parentheses () that would indicate a capturing group, for example: \svalue=»(.*)?»\s*(>*)

In the replace field, backreference such groups by numbers starting with 1, for example: placeholder=»$1″

PhpStorm highlights the found occurrences based on your search specifications and displays hints with the replace string.

Switch the character case

You can use regular expressions to change the case of characters that matches some criteria.

Open the search and replace pane Ctrl+R . Make sure that the Regex checkbox is selected.

In the search field enter the search pattern.

In the replace field, depending on what you want to achieve, enter one of the following syntax:

\l changes a character to lowercase until the next character in the string.
For example, Bar becomes bar .

\u changes a character to uppercase until the next character in the string.
For example, bar becomes Bar .

\L changes characters to lowercase until the end of the literal string \E .
For example, BAR becomes bar .

\U changes characters to uppercase until the end of the literal string \E .
For example, bar becomes BAR .

Refer to the RegEx syntax reference table for more details.

Как заменить текст регулярными выражениями в PhpStorm

В сети есть множество неправильных примеров, которые не работают.

В моем объекте проекта WordPress / Php на 1000 файлов и 100 папок мне нужно было заменить все языковые константы, например:

к динамическим вызовам методов языка, например:

Использование регулярных выражений является обязательным условием, чтобы сэкономить рабочие дни. Но документация PhpStorm не дает вам учебника, как это сделать, и Google и StackOverflow — это полный НЕПРАВИЛЬНЫЙ или 90% правильных (не 100%) ответов. Поэтому я сделал этот урок, чтобы сэкономить время, чтобы вам не пришлось тратить час на эксперименты, пока вы все делаете правильно и работаете. Пожалуйста, смотрите ответ в этой теме для моего урока.

Решение

Чтобы заменить текст в PhpStorm 8, PhpStorm 9 и новее, а также, возможно, и в WebStorm 10, откройте свой проект, щелкните правой кнопкой мыши папку плагина, в которой вы хотите заменить код, выберите параметр «Заменить в пути». Следуйте инструкциям ниже.

Для замены ОТ => К:

Поиск выберите этот режим поиска:

В поле «ПОИСК» введите значение этой фразы:

В поле «ЗАМЕНИТЬ» введите значение этой фразы:

Другие решения

В поле поиска начните вводить регулярное выражение, которое описывает все атрибуты заголовка. Обратите внимание, что хотя регулярное выражение \ stitle = «.?«\ S[/>] * соответствует содержимому атрибута title, рекомендуется захватить группы для ссылки на них в поле Replace:
\ Stitle = «(.)? «\ S(/> *)
Обратите внимание, что для регулярных выражений предварительный просмотр замены отображается во всплывающей подсказке.

PHPStorm: Когда >

  • Сайтостроение
  • Статьи
  • Веб-программирование
  • Программирование на PHP

О, я обожаю быстрые и простые текстовые редакторы. Будучи пользователем Linux, я несколько лет практически не расставался с Kate и KWrite.

С помощью ряда приемов и плагинов, я сделал эти редакторы действительно очень интеллектуальными. Я написал в них целые проекты на Perl , Bash и даже на PHP и Java .

Я могу понять энтузиазм, с которым воспринимаются Sublime Text или TextMate , но сегодня я уже не могу обойтись без полномасштабной IDE .

Культура

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

Но это сказывается на обучаемости приложения и легкости его использования. Это те программисты, которые предпочитают Vi(m) или Emacs .

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

В результате у них формируется совершенно другой менталитет и представление проекта и кода. Я программист из этой категории, поэтому в данной статье мы поговорим об >PHPStorm .

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

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

Так, в чем разница?

Раньше, когда мне нужно было составить код для короткого скрипта или программы, я использовал только быстрый текстовый редактор. Больше нет.

Сегодняшние компьютеры и интегрированные среды разработки настолько быстры, что теперь это практически занимает столько же времени: запустить PHPStorm и начать писать код в нем или запустить KWrite и писать код в этом редакторе.

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

Хорошо, хорошо… Все это общие характеристики. Но как насчет специфических функций IDE? Аббревиатура IDE происходит от термина интегрированная среда разработки. Эта фраза содержит две ключевых части: интегрированная и среда разработки.

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

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

Ключевой особенностью IDE является ее понимание кода, который вы пишете. IDE не просто содержит список команд, которые можно использовать в вашем любимом языке, например, PHP или каком-либо другом. Она поддерживает сложные алгоритмы, предназначенные для понимания вашего кода.

PHPStorm не предложит вам команду или выражение, которое было бы синтаксически неверным. Он знает, например, что вы не можете написать «print(‘Hello World’);» непосредственно внутри класса, не заключив это выражение в функцию.

Так что >«print()» в случае, когда она не может быть использована. Но это только верхушка айсберга.

Давайте рассмотрим еще несколько конкретных примеров.

Использование PHPStorm в серии статей «Рефакторинг производного кода»

Да. Если вы читали первые две части серии статей « Рефакторинг производного кода »: Золотой мастер и Магические строки и константы , вы могли заметить, что в них приведены скриншоты из IDE.

То есть, как выглядит мой PHPStorm . И, следовательно, как PHPStorm помогает мне, обучать вас программированию.

Подсветка кода

Это очень важно. Большинство простых редакторов также может сделать подсветку кода, но >PHP , HTML , CSS и так далее.

Каждую со своим собственным набором правил. Например, я хотел бы, чтобы строки CSS имели зеленый цвет, PHP и HTML — оранжевый:

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

Когда мы искали магические строки в серии по рефакторингу, мы могли легко определить эти строки, просто найдя оранжевый текст на экране. То же самое касается и магических констант и чисел. Когда мы искали их, синий цвет помогал нам в этом.

Топ-пост этого месяца:  Как выбрать хостинг для интернет-магазина

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

Обзор инструментов рефакторинга

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

Есть вещи, предлагаемые PHPStorm , которых вы не найдете ни в одном другом редакторе или IDE для PHP. Это набор инструментов рефакторинга, которые так необходимы в нашей повседневной работе.

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

Мы программисты тратим половину нашего времени на чтение кода, около 40% времени на изменение и рефакторинг существующего кода, и, если повезет, если действительно повезет, 10 % на написание нового кода.

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

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

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

Представление локальных переменных

Одним из самых простых видов рефакторинга, с которым мы уже работали в магических строках и константах, являлось « Представление локальных переменных », также известное как « Извлечение переменных ».

Я кратко напомню этапы, которые мы должны пройти, чтобы использовать этот вид рефакторинга:

  • Добавление переменной с требуемым значением;
  • Поиск всех вхождений ее значений;
  • Замена всех вхождений переменной.

Это просто сделать, если у нас есть одно значение для преобразования в переменную, но как насчет второго шага? Как точно найти все вхождения этого значения?

Вам нужно проанализировать ваш код и принять сознательные решения о том, что заменять, а что нет. Например:

В printAPairOfPlayers ( мы можем видеть, что строка « Player name: » повторяется дважды. Если мы хотим извлечь эту строку в локальную переменную, переменную внутри функции, нам нужно будет заменить оба вхождения на printAPairOfPlayers() , а не одно на printOnePlayer() .

Если printOnePlayer() будет располагаться на 100 строк ниже, мы даже не сможем увидеть, что есть еще одно дублирование строки в другом методе.

Поэтому нам нужна локальная переменная. Мы сначала создаем переменную, запускаем тесты, а затем ищем строку и находим ее во втором операторе echo .

Мы заменяем ее, запускаем тесты, еще раз ищем, находим ее в последнем операторе echo , заменяем ее, снова запускаем тесты. Ищем снова, пока не достигнем конца метода.

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

Не было бы проще нажать одну кнопку или выбрать опцию в меню, и >PHPStorm вполне способен это сделать.

В случае с приведенным выше кодом просто наведите курсор на строку « Player name: » в любом месте и щелкните правой кнопкой мыши:

После того, как вы выберете команду « Extract Variable… », PHPStorm проанализирует код и произведет поиск различных фрагментов кода, которые вы зададите.

В нашем случае будет предложено два варианта выражения:

Это не просто крутая фишка, это еще и очень полезно. Очень часто случается так, что дублирование может возникнуть за пределами вашего поля зрения.

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

Для нашего примера, давайте выберем только часть строки, без объединения:

Теперь, когда фрагмент кода, который мы хотим извлечь, идентифицирован, наш следующий шаг — назвать его. « playerHeadersString » — кажется подходящее имя для переменной.

В поле ввода вам не нужно ставить символ « $ » перед ее именем. PHPStorm проставит его в код автоматически. Еще одним важным аспектом является то, что у нас есть еще и дополнительные опции. PHPStorm нашел все вхождения нашей переменной.

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

Такая же строка в методе printOnePlayer() , не учитывалась и не была нам предложена, поэтому она не будет заменена. В противном случае это привело бы к ошибке в коде, и PHPStorm достаточно умен, чтобы предостеречь нас от этой ошибки:

Меньше тестов

Еще одно преимущество PHPStorm заключается в том, что вам не нужно часто выполнять тесты. Когда мы производим рефакторинг вручную, мы запускаем тесты после каждого следующего шага.

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

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

Кроме того, вам все равно придется выполнять меньше действий. Вручную вы проделаете только одно действие. После этого вы можете всего лишь однократно запустить автоматическое тестирование.

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

Извлечение переменных классов

Чтобы извлечь нашу строку в переменную класса — также известную как поле класса — мы можем использовать опцию рефакторинга « Extract Field » из того же контекстного меню, которое было описано выше.

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

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

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

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

Инициализация зависимой от контекста переменной

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

Давайте рассмотрим один из способов извлечения переменной из магических строк и констант:

В методе roll() , в строке 73 — та, что выбрана — есть число « 11 «. Это магическое число, которое мы только что определили, и теперь мы хотим извлечь его.

Если мы осуществляем извлечение вручную, мы должны будем проделать следующие действия:

  • Определить переменную в строке, предшествующей строке со значением 11;
  • Запустить тесты;
  • Заменить значение переменной;
  • Запустить тесты;
  • Осуществить поиск другого вхождения числа 11;
  • Определить ее в строке 90;
  • Заменить значение нашей переменной;
  • Запустить тесты. Они выдадут ошибку;
  • Спросить себя, где разместить инициализацию переменной так, что она работала, но по-прежнему как можно ближе к месту ее использования;
  • Переместить инициализацию переменной на один уровень выше;
  • Запустить тесты. Они все равно выдают ошибку;
  • Переместить инициализацию переменной еще на один уровень вверх, за пределы всего оператора if;
  • Запустить тесты. Они, наконец, проходят;
  • Осуществить поиск других вхождений;
  • Больше не найдено. Дело сделано.

Как видите, это очень сложный процесс. И чреватый ошибками. Мы предполагаем, что у вас могут быть тесты, которые помогают вам, но что, если вы работаете с каким-то совершенно нечитаемым, трудно проверяемым кодом?

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

Подводная часть айсберга

То, что мы описали вам выше, это примерно верхушка айсберга. Извлечение переменных это, вероятно, самый простой и легкий способ рефакторинга.

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

Мы научим вас, как это сделать вручную, но рекомендую вам использовать смарт IDE, которая будет делать всю работу за вас.

Переименование

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

PHPStorm может сделать это за пять минут, в то время как у вас это заняло бы около двух часов. Он может найти и изменить название всех методов, и вам останется только проверить несоответствия, прежде чем вы сможете сказать, что все в порядке.

Да, да … Вам нужно будет проверить некоторые найденные вхождения, потому что PHP это язык динамических типов, и в некоторых случаях — этого не может не только PHPStorm — любой другой алгоритм IDE или программа такого рода не сможет распознать, какой тип объекта используется для конкретного вызова метода.

Представьте, что у вас есть два совершенно разных класса. В каждом из них у вас есть открытый метод под названием «findAll()» . Это очень распространенная ситуация.

Для чего нам нужно оценивать изменения?

Допустим, 50 классов используют первый класс, и еще 50 классов используют второй. Если вы использовали надлежащие интерфейсы и указания для типов, где это возможно, PHPStorm предложит правильные классы для замены.

Топ-пост этого месяца:  Payoneer — возможность для фрилансеров получать и тратить деньги по всему миру

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

Из-за динамической типизации PHP. Хотя в некоторых случаях это дает определенные преимущества, в случаях, когда нам нужно произвести рефакторинг, как сейчас, это является недостатком. Когда такое происходит, единственное, что можно сделать, это самому человеку оценить необходимость замены.

С учетом всего вышесказанного, хотя в PHPStorm есть и другие функции, кроме рефакторинга, это, тем не менее, лучшая IDE, если основная задача это именно рефакторинг.

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

Но PHPStorm на этом не останавливается. Он имеет много других инструментов рефакторинга, которые выручают вас в трудных ситуациях. Это действительно позволяет вам чувствовать себя уверенно.

Тестирование и просмотр кода

Вы делаете TDD, не так ли? Если нет, то стоило бы. Тестирование так же важно в программировании, как собственно написание кода. Лично я не могу представить свою жизнь без TDD.

За последние несколько лет я настолько привык к нему, что сама мысль о коде без неотъемлемого тестирования, кажется для меня противоестественной.

Тестирование и IDE

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

Это единственный PHP IDE из тех, что мне известны, который на самом деле связан непосредственно с фреймворком PHPUnit , расширяет его и использует его для того, чтобы собрать всю информацию, которая должна быть представлена.

Это обеспечивает гораздо более глубокую связь с PHPUnit , более удобные исходящие данные для пользователей и более высокую скорость тестирования.

Другие >PHPUnit , функции записи и вывода в XML-файле и интерпретируют результаты, чтобы показать их вам. Так работает NetBeans .

Такой подход обеспечивает более высокую гибкость для вас, как для пользователя, если вы хотите обойти систему и запустить тесты нестандартными способами (например, через Telnet или SSH ).

Но в этом также заключается и огромное неудобство. Все начинает работать медленно.

Прежде всего, процесс оболочки должен быть разветвленным. «exec()» всегда потребляет много ресурсов. В этом случае результат должен быть записан в отдельный файл, возможно, на удаленном компьютере.

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

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

Затем файл должен быть считан, чтобы вывести его пользователю.

Хотя это супер гибко настраиваемое решение, оно требует много времени. Слишком много, если речь идет о юнит-тестировании и миллисекундах на прохождение тестов. И юнит-тесты, которые занимают более пяти миллисекунд, вообще уже нельзя считать юнит-тестами.


Внутреннее использование PHPUnit

PHPStorm решает проблему, или, по крайней мере, уменьшает потребление ресурсов за счет внутреннего использования PHPUnit и вывода результатов предпочтительным для PHPStorm способом.

Это уменьшает гибкость. Вы не можете обойти его, чтобы провести тесты без этих ограничений. Но это очень сильно увеличивает скорость.

Нет больше exec, нет больше файлов, записываемых медленными файловыми системами. Для удаленного выполнения может потребоваться дополнительное время на передачу данных по сети, но мы в любом случае не можем обойтись без этого.

Другое приятное преимущество заключается в том, что прямое использование PHPUnit позволяет получить более подробную информацию о неудачных тестах, которая будет представлена более организованно.

Так мы получаем преимущество в скорости, подробности и четкости информации за счет гибкости.

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

Организация и поиск файлов

Как и большинство IDE , PHPStorm также является проект ориентированным приложением. Обычно ваш проект содержит исходные файлы и тестовые файлы. Что касается PHPStorm , то он требует от вас указать одну отдельную папку в качестве папки для тестов.

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

Но и это еще не все. Когда речь заходит о поиске и запуске файлов в PHPStorm есть уникальная функция: перейти к Everything (или Search Everything ) — я обожаю эту функцию.

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

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

Поэтому я могу просто нажать Shift + Shift и начать набирать искомый параметр. Это замечательно и быстро.

Заключительное слово

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

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

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

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

Управление проектами — это довольно типичная для >JetBrains сделали кое-что действительно удивительное.

Их движок индексации просто быстр, как фурия. Ни одной другой >Syneto так быстро. А затем так же быстро провести по нему поиск.

Фактически интегрированные среды разработки, такие как NetBeans или Eclipse и его производные, как правило, не в состоянии проиндексировать весь проект.

Это делает поиск очень медленным. PHPStorm делает это корректно и очень быстро по сравнению с любой другой IDE.

Интеграция версий документов — это еще один козырь в колоде PHPStorm . Mercurial , Git , CVS , Subversion , вы можете сами продолжить этот список. PHPStorm чувствует себя как рыба в воде с каждым из них.

От выборочной фиксации и установления совместимости с различными инструментами и до разнообразных графических функций — все это вы имеете в своем расположении.

Так как я являюсь пользователем PHPStorm , мне приходилось использовать CLI для выдачи команды «hg» , возможно, два раза или около того. И он просто работал.

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

Очень редко. Как правило, вы работаете над контекстом самой строки: прописываете в скобках некоторые параметры или что-то вроде того. А после этого вам нужно перейти в конец строки и нажать «;». Что ж, с помощью макросов это легко автоматизировать.

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

Данная публикация представляет собой перевод статьи « PHPStorm When the IDE Really Matters » , подготовленной дружной командой проекта Интернет-технологии.ру

> / codd 0 Comments

Горячие клавиши в IDE PhpStorm

CTRL + ALT + L — отформатирует код, в соответствии с вашими настройками

CTRL + SHIFT + Backspace — вернёт вас к месту предыдущего редактирования кода

CTRL + Space — покажет диалоговое окно с подсказками

CTRL + Q — выведет диалоговое окно с документацией по активному элементу. При повторном нажатии на Q — зафиксирует окно с документацией

CTRL + B или Ctrl + Click — переход к месту декларации

ALT + Enter — покажет окно с возможными действиями и исправлениями

ALT + Shift + up — переместит текущую строку на одну строку вверх
ALT + Shift + down — переместит текущую строку на одну строку вниз

Ctrl + W — выделит блок кода (слово/строка/документ)

Ctrl + G — переход к указанной строке (вызовет диалоговое окно для ввода номера строки)

Пошаговая настройка PHPStorm + Xdebug + OpenServer

1. В php.ini добавляем/раскомментируем нижеследующие строки и перезагружаем OpenServer.

2. На странице https://www.jetbrains.com/phpstorm/marklets/ в поле «IDE key» вводим «PHPSTORM» и нажимаем «Generate». Добавляем появившиеся ссылки на экспресс-панель браузера.

3. Заходим в настройки PhpStorm: File -> Settings -> Languages & Frameworks -> PHP -> Debug.
В секции «Xdebug» в поле «Debug port» указываем «9000» и снимаем галочки с пунктов «Force break at first line when no path mapping specified» и «Force break at first line when a script is outside the project».

4. В навигационной панели нажимает на «Add Configuration» и добавляем новый конфиг «PHP Remote Debug»: Name — «Xdebug», Server — «localhost», IDE key — «PHPSTORM»

5. В строке «Server» нажимаем на многоточие «…» и вводим следующие параметры: Host — «localhost», Port — «80», Debugger — «Xdebug».

6. Приступаем к отладке. В PhpStorm активируем «Listen PHP Debug Connections» (значок телефонной трубки). В экспресс-панели браузера нажимаем на «Start debugger». Устанавливаем точки остановки и перезагружаем страницу в браузере.

7. Для запуска профилирования в браузере нажимаем на «Start profiler» и перезагружаем страницу сайта. Лог работы профайлера сохранится в «%sprogdir%/userdata/temp/xdebug/». Для его просмотра в PhpStorm нажимаем на Tools -> Analyze Xdebug Profiler Snapshot и указываем путь до лога.

Пройти видеокурс по PHPStorm от JetBrains

Буду изучать возможности данного IDE.

Все видео данного видео-курса выложил у себя на блоге. Можете найти по этой ссылке:

Критерий завершения

Все уроки прошёл.

Личные ресурсы

Приступая к работе

00-1. Введение в PhpStorm

Топ-пост этого месяца:  Импорт картинок и дата создания

00-2. Концепция IDE

00-3. Рассмотрение интерфейса PhpStorm IDE

00-4. Основные концепции PhpStorm IDE

00-5. Основы работы с редактором и навигация в PhpStorm

00-6. Подробнее о работе в редакторе PhpStorm

00-7. Создание проекта в PhpStorm

PHP Разработка

01-01 Рефакторинг PHP-кода в PhpStorm

01-02 Генерация кода в PhpStorm

01-03 Поддержка пространства имен в PhpStorm

01-04 Не требующий настройки дебаггинг в PHPStorm

01-05 Проверка конфигурации дебаггера в PHPStorm

01-06 Подробнее о дебаггинге в PHPStorm

01-07 Профилирование PHP-приложений в PHPStorm

01-08 Поддержка PHPUnit в PHPStorm

01-09 Проводим PHPUnit тестирование в PHPStorm

01-10 Поддержка Composer в PHPStorm

01-11 Поддержка Phing в PhpStorm

HTML, CSS, JavaScript

02-01 HTML-редактор в PHPStorm

02-02 CSS-редактор в PHPStorm

02-03 Live Edit в PHPStorm

02-04 File Watchers в PHPStorm

02-05 Редактор JavaScript и рефакторинг кода в PHPStorm

02-06 Отладка JavaScript в PHPStorm

02-07 Юнит-тест для JavaScript в PHPStorm

Среда разработки

03-01 Языковые инъекции (Mix-ins) в PHPStorm

03-02 Live Templates (Сниппеты) в PHPStorm

03-03 Файловые шаблоны в PHPStorm

03-04 TODO комментарии в PHPStorm

03-05 Деплоймент и работа с удаленным хостом в PHPStorm

03-06 Поддержка систем управления версиями в PHPStorm

03-07 Поддержка GitHub в PHPStorm

03-08 Локальная история в PHPStorm

03-09 Поддержка Vagrant в PHPStorm

03-10 Инструмент командная строка в PHPStorm

03-11 Встроенная SSH консоль и Remote Tools в PHPStorm

03-12 Базы данных и SQL редактор в PHPStorm

03-13 Встроенный REST-Client в PHPStorm

03-14 Интеграция с системой управления проектами в PHPStorm

Урок 1. Редактор кода >

Показать панель управления

  • Опубликовано: 28 май 2020
  • Продолжение курса по IDE PhpStorm тут: webformyself.com/category/premium/php-premium/phpstorm-premium/
    В первом уроке по работе с IDE PhpStorm мы с вами, прежде всего, остановимся на вопросе отличий обычного редактора для написания кода от IDE, т.е. от среды разработки.
    В уроке мы рассмотрим возможные альтернативы редактору PhpStorm, узнаем о его преимуществах и недостатках, а также узнаем, где скачать и как установить PhpStorm.

Комментарии • 19

Продолжение курса по IDE PhpStorm тут: webformyself.com/category/premium/php-premium/phpstorm-premium/

Какая это установка, если нет самого процесса установки ?

Здравствуйте
Openserver разве не нужен для локальной разработке ?
Как правильно настроить и куда сохранять проекты ? Я настроил в settings phpstorm путь к php в папке openserver. Все вроде похватилось. Run работает. И xdebag вроде тоже должен.
Теперь не понимаю куда лучше сохранять проекты. В папку по умолчанию Phpstorm C:\Users\Admin\PhpstormProjects\ или в Openserver/domains/public_html/mysite/ .
Заранее спасибо

Настройка PhpStorm для работы с Yii

Настройки и удобные нюансы самого PhpStorm.

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

File -> Settings ->IDE Settings -> Editor -> Editor Tabs — поставить галочку «mark modified tabs with asterisk»

Настройки PhpStrom для работы с Yii.

  1. Исключаем из индекса yiilite.php:
    • File → Settings → IDE Settings → File Types.
    • В Ignore files and folders добавляем yiilite.php.
  2. Исключаем «лишние» директории, указываем ресурсы.
    • File → Settings → Project settings → Directories.
    • Помечаем framework/cli/views, protected/runtime и assets как excluded.
    • Помечаем корень сайта как resource root.
  3. Указываем путь к PHP.
    • File → Settings → Project settings → PHP → PHP Home.
  4. Подключаем Yii, если он не является частью проекта.
    • File → Settings → Project settings → PHP → PHP Home → Add.
    • Указываем путь до директории framework.
  5. Если используется PHPUnit, подключить его:
    • File → Settings → Project settings → PHP → PHP Home → Add.
    • Указываем путь до директории PHPUnit.
  • Дополнение кода: Ctrl+Space.
  • Параметры метода: Ctrl+Q.

Тестирование

Для запуска модульных тестов Yii нужно установить PHPUnit.

  1. PHPUnit.
    • Устанавливаем по инструкции на официальном сайте.
    • В IDE: Run → Edit configurations.
    • Жмём на плюсик.
    • Name: что угодно.
    • Test: в зависимости от того, что тестировать выбираем нужное и указываем путь.
    • Use XML configuration file: путь до phpunit.xml. Обычнопуть_до_приложения/protected/tests/phpunit.xml.
  • Для запуска тестов используем SHIFT+F10.

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Полезные клавиатурные сокращения для PHPStorm

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

Я работаю в этом редакторе на Ubuntu и на Маке, соответственно для удобства все написанные команды будут представлены сочетаниями клавиш для обоих систем, клавиши для Linux так же подходят и для версии Windows.

Прежде чем писать конкретные команды для работы с редактором хочется привести пример очень полезной команды, а именно: CTRL + SHIFT + A / Shift + CMD + A (Fine Action) — поиск любого действия в редакторе, другими словами когда вы не знаете где нужная вам команда, но можете сформулировать ключевые слова для этого действия, используйте данное сочетание клавиш.

1) Ctrl / CMD + наведение курсора на интересующую функцию/переменную — показ подробной информации про данную функцию, а если удерживая Ctrl/CMD кликнуть на интересующий нас метод, то нас перекинет на его определение.

2) Ctrl + / / CMD + / (Comment/uncomment with line comment) — закомментировать участок кода с помощью двойного слеша.

3) Ctrl + Shift + / / CMD + Alt + / (Comment/uncomment with block comment) — закомментировать участок кода с помощью комментария вида «/* */»

4) Ctrl + Shift + Backspace / CMD + Shift + Backspace (Last Edition Location) — вернуться к предыдущему месту редактирования, работает так же, даже если до этого вы редактировали другой файл.

5) Ctrl + Alt + L / CMD + Alt + L (Reformat Code) — форматирование кода, актуально как для отдельного файла, так и для всех файлов проекта. В Ubuntu это сочетание клавиш по-умолчанию вызывает блокировку экрана, поэтому нужно будет в настройках либо изменить клавиши, либо изменить сочетание для блокировки экрана (я предпочел вообще отключить данную команду в своей системе).

6) Ctrl + Space / Alt + Space (Basic) — вызов всплывающего окна с подсказками по коду.

7) Alt + Enter (Show Intention Actions) — если PHPStorm обнаруживает ошибки или находит какие-то советы, которые позволяют оптимизировать или упростить код, то он выделяет этот участок подчеркиванием и всплывающим значком лампочки (при наведении на проблемный участок), данное сочетание клавиш позволяет применить рекомендацию системы.

8) CTRL + N / CMD + O (Go to class) — быстрый поиск по именам классов, очень полезно когда у вас большой и сложный проект с множеством классов, которые вы хорошо знаете.

9) Ctrl + Shift + N / CMD + Shift + O (Go to file) — быстрый поиск по названиям файлов, если в проекте много файлов с одинаковыми именами (прим: index.php), то можно набирать вместе с относительным путем до файла, так же прилично экономит время и нервы.

10) CTRL + W / Alt + Стрелка вверх (Select Word at Caret) — выделение логических блоков кода, при повторном нажатии область выделения\блока увеличивается (прим: Переменная -> Метод -> Класс).

11) Двойное нажатие Shift — поиск везде (классы, файлы и т.д.), т.е. как сочетание пунктов 6 и 7.

При публикации заметки использованы материалы:

PhpStorm 6: разработка с умом — на смену напряженному кодингу

Спешу поделиться новостью — вышел PhpStorm 6 . Новая версия интегрированной среды разработки повысит Вашу продуктивность благодаря автоматизации рутинных действий и поддержке передовых методов PHP-разработки.

Основные новые функции и улучшения:

  • Новые рефакторинги: Change Signature, Pull Up/Push Down class members и Move Class
  • Средство управления зависимостями Composer для поддержки PHP
  • Улучшенная обработка имен пространств, с автоимпортированием, оптимизацией импортов и пр.
  • Средство упорядочивания кода, позволяющее контролировать структуру существующего и генерируемого кода
  • Полностью настраиваемые шаблоны, включая PHPDoc
  • Больше инспекций кода, усовершенствованное автодополнение и предотвращение ошибок времени исполнения
  • Новый редактор схем баз данных и инструменты для отслеживания изменений.

Кроме того, PhpStorm 6 включает в себя совершенно новый инструментарий для веб-разработки:

  • Плагин File Watchers, обеспечивающий простую транспиляцию кода SASS, LESS, SCSS, CofeeScript и TypeScript
  • Полноценная отладка кода TypeScript, Dart или CoffeeScript с использованием source maps
  • Улучшенная обработка библиотек JavaScript, включая распознавание минифированных версий
  • REST Client для тестирования RESTful веб-сервисов прямо из IDE
  • Переработанное представление структуры кода HTML
  • Поддержка Emmet, ускоряющая написание кода HTML и CSS
  • И наконец, обновлен интерфейс IDE и редактора, которые представлены теперь в темной палитре Darcula.

На сайте JetBrains Вы можете прочитать о PhpStorm 6 подробнее и загрузить IDE для подходящей операционной системы.

phpstorm — настройки и советы по работе в ide

краткие настройки phpstorm

/.PhpStorm*version*/phpstorm64.vmoptions
рекомендую увеличить доп. макс. выделяемую оперативку до 512 или 1024: -Xmx1024m
на примере pentium b980 (2x) + 8gb ddr3 + ubuntu 16.10 x64 unity

  • file — settings — editor — colors&fonts — font
    primary font: ubuntu mono
    size: 18 (не пугайтесь: на деле выглядит как 14px)
    line spacing: 1.1 (для корректного отображения имен параметров в версии 2020.1 и выше)
    secondary font: fira code
    [v] enable font ligatures (преобразуется внешний вид символов <> == === => и т.д.)
    или поменять шрифты местами их если привыкните к основному шрифту fira code
    настраивал для 1920x1080px, для 1366px можно уменьшить параметры малость
    или так
    primary font: source code pro
    size: 14
    line spacing: 1.1
  • file — settings — appearance&behavior — appearance — override default fonts by
    name: ubuntu
    size: 16
  • краткие советы по работе в phpstorm

    • осторожнее с опцией *delete target items when source ones do not exist*
      в tools — deployment — options
      пример
      в локальной директории /dir1/ находится десять файлов
      в удаленной директории /dir1/ находятся сто файлов
      при отмеченном чекбоксе в некоторых случаях вы можете лишиться файлов на сервере без предупреждения
    • vcs — local history
      удобная вещь, но часто она неожиданно становится поврежденной или при обновлении phpstorm очищается история правок файла
      поэтому рекомендую сразу создавать git при создании нового проекта
      vcs — enable version control integration — git
      добавить все файлы и закоммитить с пометкой init
    • закиньте настройки в облако
      создав символическую ссылку директории config (system весит много, да и не нужна она в облаке)
      ln -s

    /.PhpStorm*version*/config phpstorm_config
    и закинув ее в дропбокс, например

  • для ускорения работы ide добавляйте в исключения неиспользуемые директории
    file — settings — directories — excluded
    (ignores it during indexing, parsing, and code completion: directories)
  • autocomplete без учета регистра
    file -> setting -> editor -> general -> code completion -> case sensitive completion -> none
  • scroll from source (в remote host)
    navigate -> select in -> remote host
  • Добавить комментарий