Настройка phpstorm для вёрстки на ос windows
Содержание:
- Добрый день
- Step 5: Generate some code
- Основные возможности
- Исключаем из индекса ненужные папки, модули, классы
- Примечания
- Быстрые фиксы
- upd. 06.12.2017
- IDE features
- Seamless tool integration
- Database Tools
- Редактор
- PHP 8
- Define exit points
- HTTP клиент
- Поддержка формата PHPT
- Подключение Bootstrap в PhpStorm
- Version Control
- Define method’s return type
- EditorConfig
Добрый день
С тех пор PhpStorm стал одним из основных моих инструментов.
Миф №1: PhpStorm тормозит
PhpStorm как IDE отличается от текстовых редакторов:
- индексирует файлы проекта, чтобы потом мгновенно искать по ним, не перебирая каждый раз содержимое;
- распознает контекст: понимает, где названия функций, где локальные переменные, где пути к файлам и т. д.
PhpStorm как редактор не хуже Notepad++. С той же скоростью появляются буквы и перемещается курсор. Поиск работает мгновенно за счет индексации. Анализ кода работает в фоне и может отставать от курсора. Но в этом большой проблемы нет, потому что сначала программист пишет код, а потом смотрит на подсказки среды разработки.
Миф №2: переименование файла занимает в PhpStorm несколько секунд с прогресс-баром
Зависит от того, что нужно программисту. PhpStorm способен искать вхождения старого названия файла по всему проекту и по контексту определять, нужно ли это название изменить. Альтернатива в обычных редакторах — поиск и замена по всем файлам — занимает несколько минут рутинной работы. Экономия времени на два порядка.
Поиск старого названия файла можно отключить прямо в окне переименования. Тогда файл переименовывается мгновенно.
Миф №3: PhpStorm «устанавливать и настраивать год»
Установка проходит не сложнее установки любых других программ. Первоначальной настройки PhpStorm не требует. Может открыть любую папку как проект без предварительных вопросов.
Настройку дополнительных инструментов делаете тогда, когда они вам понадобятся:
- путь к git.exe для работы с гитом;
- доступ к БД, чтобы делать запросы из среды разработки;
- доступ на сервер по SSH/FTP для загрузки файлов проекта.
Пошаговая отладка через Xdebug настраивается сложнее из-за самой природы веб-приложений.
Но если не хотите пользоваться пошаговой отладкой с просмотром значений переменных по всему стеку вызовов, отлаживайте по-старинкевар-дампами, никто не запрещает
Миф №4: PhpStorm «выглядит как говно»
Вкусовщина, конечно. Нормально он выглядит. Внешний вид работать не мешает. Чтобы не приводить зря громадный скриншот, покажу заодно «git blame»:
Step 5: Generate some code
Writing code can be a lot easier and faster with the code generation options available in PhpStorm. The Code | Generate menu (or just Alt+Insert) will help you with generating constructors, getters/setters, PHPDoc comments as well as suggest overriding/implementing some methods Ctrl+O / Ctrl+I. Try more live examples in workshop/02_Editing/06_Generate_code/6.1_Generate_Code.php.
Use live templates (choose Code | Insert Live Template or press Ctrl+J) to produce entire code constructs. To view the list of available ready-to-use live templates, in the Settings/Preferences dialog Ctrl+Alt+S go to Editor | Live templates.
If you see that you need something important for your development, extend this set of templates with your own ones. Try live examples from workshop/04_Live_Templates/01_Code_Expansion/1.1_Code_Expansion.php and workshop/04_Live_Templates/02_Creating_Live_Templates.
Also, consider surrounding your code with complete constructs. Choose Code | Surround With or press Ctrl+Alt+T, then choose the required statement from the popup menu. Try more live examples in workshop/04_Live_Templates/03_Surround_Templates/3.1_Simple_template.php.
Основные возможности
Редактор кода PHP
PhpStorm предоставляет богатый и интеллектуальный редактор кода для PHP с подсветкой кода, расширенной конфигурацией форматирования кода, проверкой на наличие ошибок на лету и умным автодополнением
.
- Поддержка PHP 5.3, 5.4, 5.5, 5.6, 7.0, 7.1, 7.2 и 7.4, включая генераторы, сопрограммы, пространства имен, замыкания, типажи, синтаксис коротких массивов, доступ к члену класса при инстанциировании, разыменование массива при вызове функции, бинарные литералы, выражения в статичных вызовах и т. д. PhpStorm может использоваться как для современных, так и для традиционных проектов на PHP.
- Автодополнение кода финализирует классы, методы, имена переменных, ключевые слова PHP, а также широко используемые имена полей и переменных в зависимости от их типа.
- Поддержка стандартов оформления кода (PSR1/PSR12, Drupal, Symfony2, Zend).
- Поддержка PHPDoc. PhpStorm предоставляет соответствующее автодополнение кода, основанное на аннотациях @property, @method и @var.
- Детектор дублируемого кода.
- PHP Code Sniffer (phpcs), проверяющий код на лету.
- Рефакторинги (Переименование, Введение переменной/константы/поля, Встраивание переменной).
- Поддержка редактирования шаблонов Smarty (подсвечивание синтаксических ошибок, автодополнение функций и атрибутов Smarty, автоматическая вставка парных скобок, кавычек и закрывающих тегов и др.).
- MVC представление для Symfony2 и Yii фреймворков.
- Распознавание кода, запакованного в PHAR-архивы.
Среда разработки
- Поддержка SQL и баз данных (Рефакторинг схемы базы данных, генерация скриптов миграции схемы, экспорт результатов выполнения запроса в файл или буфер обмена, редактирование хранимых процедур и многое другое).
- Удаленное развертывание приложений и автоматическая синхронизация с использованием FTP, SFTP, FTPS и др. протоколов.
- Интеграция с системами управления версиями (Git — включая специальную функциональность для работы с GitHub, Subversion, Mercurial, Perforce, CVS, TFS), позволяющая совершать многие действия, например commit, merge, diff и другие, прямо из PhpStorm.
- Локальная история (Local History) (локально отслеживает любые изменения в коде).
- PHP UML (Диаграммы классов UML для PHP кода с рефакторингами, вызываемыми прямо из диаграммы).
- Поддержка Phing (предоставляет автодополнение, проверку стандартных тегов, свойств, имен целей, значений атрибутов пути в компоновочных файлах (build files).
- Интеграция с баг-трекерами.
- Поддержка Docker, Vagrant, SSH консоли и удаленных инструментов
- Поддержка Google App Engine for PHP
- Использование различных сочетаний клавиш для повышения эффективности.
Отладка и тестирование
- Легко конфигурируемый визуальный отладчик (Xdebug, Zend Debugger) для проверки соответствующих контексту локальных переменных и заданных пользователем объектов слежения, в том числе массивов и сложных объектов, а также редактирования значений на лету.
- Интеграция с профилировщиком: скрипты можно профилировать прямо из PhpStorm с помощью Xdebug или Zend Debugger. Доступен агрегированный отчет; пользователь может перейти от статистики исполнения прямо к функции в PHP коде.
- Интеграция с фреймворком модульного тестирования PHPUnit (тесты PHPUnit можно разрабатывать в PhpStorm и сразу запускать из каталога, файла или класса с помощью контекстного меню) с покрытием кода.
Работа с JavaScript, CSS и HTML
Все функциональные возможности, доступные в WebStorm, включены в PhpStorm. Основные возможности:
- Автодополнение кода для JavaScript, HTML и CSS (для тегов, ключевых слов, меток, переменных, параметров и функций).
- Поддержка HTML5.
- Live Edit: изменения в коде можно мгновенно просмотреть в браузере без перезагрузки страницы.
- Поддержка CSS/SASS/SCSS/LESS (автодополнение кода, подсветка ошибок, валидация и т. д.).
- Emmet.
- Навигация по коду и поиск использований (перейти к объявлению/идентификатору, найти использования)
- Поддержка ECMAScript Harmony.
- Рефакторинги для JavaScript (переименование, выделение переменной/функции, встраивание переменной/функции, перемещение/копирование, безопасное удаление, извлечение встроенного скрипта в отдельный файл).
- Отладчик JavaScript, а также интеграция с фреймворками модульного тестирования JavaScript.
Поддержка PHP в IntelliJ IDEA
JetBrains также предоставляет другую, более мощную интегрированную среду разработки — IntelliJ IDEA, в которой возможности PhpStorm можно обеспечить с помощью плагинов.
Исключаем из индекса ненужные папки, модули, классы
Это еще один очень хороший, проверенный метод, как ускорить работу PhpStorm, убирайте из индекса все ненужные папки с файлами, модулями, классами, либами и т.д., в том числе папки с кэшами и загрузкой файлов, вообще все ненужное исключайте, заметно шустрее станет срабатывать автокомплит и переиндексация.
Минут 20-40 один раз потратите и каждый день будете наслаждаться замечательной, и лучшей на мой взгляд IDE для работы с проектами, не только на PHP.
Обратите внимание еще на один момент, например, модули и некоторые js-либы я не исключил из индексации, ну чтобы автокомплит и поиск работал по ним, это понятно, а вот например, внутри модуля есть папка , она исключена из индекса, так у меня сделано во всех модулях, в ней есть инсталлятор, который может хранить в себе копии компонентов, плагинов, php-классов и т.д. для установки, а когда PhpStorm видит два одинаковых класса автокомплит у этого класса пропадает, он желтой волнистой линией подчеркивает такой класс и пишет что-то типа. Тут есть неприятная проблемка, не будет искать глобальный поиск по исключенным папкам, но если конкретно тыркнуть папку для поиска, то будет искать, возможно это где-то настраивается, я пока еще не нашел, может у вас получится, но лично мне нужно это очень редко, для поиска по всем классам Битрикса у меня есть еще один тестовый проект, на котором установлены все модули, на нем если что нахожу, что нужно.
Тут есть неприятная проблемка, не будет искать глобальный поиск по исключенным папкам, но если конкретно тыркнуть папку для поиска, то будет искать, возможно это где-то настраивается, я пока еще не нашел, может у вас получится, но лично мне нужно это очень редко, для поиска по всем классам Битрикса у меня есть еще один тестовый проект, на котором установлены все модули, на нем если что нахожу, что нужно.
Примечания
- Roman Pronskiy. (англ.). JetBrains (25 November 2020). Дата обращения: 25 ноября 2020.
- Roman Pronskiy. (англ.). JetBrains (7 October 2020). Дата обращения: 16 октября 2020.
- Erez Zukerman. (англ.). PCWorld (12 January 2012). Дата обращения: 14 мая 2020.
- Erez Zukerman. (англ.). PC Advisor (19 January 2012). Дата обращения: 14 мая 2020.
- Darryl K. Taft. (англ.). Eweek (13 September 2012). Дата обращения: 19 февраля 2013.
- Adrian Bridgwater. (англ.). Dr.Dobbs (18 September 2012). Дата обращения: 14 мая 2020.
- Bruno Skvorc. (англ.). PHP Master (13 August 2012). Дата обращения: 30 января 2013.
Быстрые фиксы
Разбиваем список на несколько строк и наоборот
Согласно PSR-2, строка больше 80 символов в длину должна быть разбита на несколько строк, каждая из которых короче 80 символов. Поэтому, если у вас есть большой массив или аргументы/параметры функции не помещаются на экране, то можно нажать на них и выбрать Split comma-separated values into multiple lines:
Если вдруг в результате рефакторинга список стал короче и помещается в одну строку, то обратное действие тоже доступно: Join comma-separated values into a single line.
Кстати, тут вам может понадобиться быстро поправить настройки стиля кода. Чтобы долго не искать нужные опции, выберите этот кусок кода, нажмите и вызовите Adjust code style settings. PhpStorm при этом предложит поменять только те опции, которые актуальны для выбранных строк:
Конструкция switch
Мы реализовали возможность быстро добавлять ветки в конструкции switch. Нажмите на выражении case без тела и вызовите Copy ‘switch’ branch.
Не забудьте отредактировать скопированную ветку, иначе PhpStorm будет подсвечивать повторяющийся кусок:
Также PhpStorm 2019.2 предупредит, если в нет дефолтной ветки, а добавить ее можно также с помощью быстрого фикса.
Манипулирование строками
PhpStorm поможет с рутинными операциями над строками. Что бы вам ни пришлось делать со строкой — разбить на части, изменить кавычки, конвертировать конкатенацию в или интерполяцию, или что-либо еще — жмите на строке и выбирайте нужное действие из списка.
В этом релизе мы добавили пару новых фишек в этот список.
Предположим, у вас есть длинное выражение в , и вам нужно добавить еще один параметр вместо подстроки. Выделите ее, нажмите , выберите Extract selected string part as format function argument, и PhpStorm поставит параметр в нужном месте:
Также можно отделить подстроку конкатенацией:
upd. 06.12.2017
Универсальный способ, чтобы вручную не убирать все папки и т.п. из индекса, можно поиграться с исключениями внизу в поле , тут исключаем все файлы логи, map.js, css, текстовые, архивы, картинки, шрифты и все папки .
А вот, что вручную я исключал будет в панели справа, это папки с кэшами, бэкапы, временные, обновления, загрузка файлов и т.д., все что по
Мой пример исключений, просто вставьте и нажмите Apply, все исключения в дереве проекта слева станут желто-оранжевыми
*.log;*.xml;*.txt;*.min.js;*.map.js;*.min.css;*.less;*.cab;*.jar;*.rar;*.zip;*.eot;*.ttf;*.svg;*.woff;*.woff2;*.png;*.gif;*.jpg;install
IDE features
WebStorm is built on top of the open-source IntelliJ Platform, which we at
JetBrains have been developing and perfecting for over 15 years. Enjoy the fine-tuned, yet
highly customizable experience it provides to fit your development workflow.
VCS
WebStorm provides a unified UI for working with many popular Version Control
Systems,
ensuring a consistent user experience across git, GitHub, SVN, Mercurial, and Perforce.
Local history
Whether you’re using VCS or not, Local history can be a real code saver.
At any time
you can inspect the history of either a particular file or directory, and roll back to any
of its previous versions.
Customization
WebStorm is extremely customizable. Adjust it to perfectly suit your coding style,
from
shortcuts, fonts and visual themes to tool windows and editor layout.
Seamless tool integration
WebStorm integrates with popular command line tools for web development,
providing you with a productive, streamlined development experience without using the command
line.
Build tools
Enjoy a simple unified UI for running Grunt,
Gulp or
npm tasks right from the IDE. All tasks are listed in a special tool
window, so simply double-click on the task name to start it.
Code quality tools
In addition to hundreds of WebStorm’s own inspections, it can run
ESLint,
JSCS, TSLint, Stylelint,
JSHint or JSLint against your code and highlight any
issues on the fly, right in the editor.
Project templates
Start new projects from the Welcome screen using popular project templates like
Express
or Web starter kit, and access even more project generator thanks to
integration with Yeoman.
Database Tools
Take a look at What’s new in DataGrip 2020.3 – all these features are available in PhpStorm, too.
SQL for MongoDB
You can now use SQL to query MongoDB databases. PhpStorm 2020.3 supports queries with clauses such as , , , , , , , and all available MongoDB functions except map, reduce, filter, and let. If you want to learn more about SQL for MongoDB, read this blog post.
Couchbase support and new data extractors
PhpStorm now supports the Couchbase Query service. We’ve also introduced two new extractors: One-Row, which allows you to copy a column to a comma-separated string; and SQL-Insert-Multirow, which generates a single statement with multiple new rows to be inserted.
Редактор
Дополнение кода при опечатках
Если вдруг вы написали или вместо — не страшно, потому что дополнение все равно сработает, так как распознает такого рода опечатки.
Это работает во всех языках и для всех символов — ключевых слов, классов, функций, свойств, методов и т. д.
Конфигурация поведения ‘Move Caret to Next Word’
Можно выбрать, куда будет ставиться указатель при перемещении по словам.Смотрите раздел Caret Movement в Preferences | Editor | General.
<
Перемещение за скобки и кавычки при нажатии Tab
Старая фишка теперь включена по умолчанию. Когда вы печатаете и нажимаете Tab, вместо добавления символа табуляции ваш курсор переместится за пределы кавычек и скобок. Чтобы отключить эту возможность, уберите галочку Jump outside closing bracket/quote with Tab when typing в разделе настроек Preferences | Editor | General | Smart Keys.
Выделенный код оборачивается в кавычки или скобки автоматически
Еще одна суперполезная фишка теперь включена по умолчанию. Когда вы нажимаете кавычку (или скобку), выделив кусок кода, то в начале и конце выделения автоматически будут добавлены кавычки (или скобки).
Если такое поведение вам не по душе, его можно отключить галочкой Surround selection on typing quote or brace в разделе Preferences | Editor | General | Smart Keys.
Новая раскладка по умолчанию на macOS
Мы поменяли дефолтную раскладку на macOS с Mac OS X на macOS 10.5+. Еще мы переименовали раскладки: Mac OS X 10.5 теперь называется Default for macOS, а старая Mac OS X теперь IntelliJ IDEA Classic.
PHP 8
PHP 8.0 is a major language update with many incredible new features. PhpStorm will help you verify that your existing code is compatible with it, update your codebase more quickly, and take advantage of the latest language improvements.
See language version
Now you can always see which language version is being used in a project. We have placed the corresponding indicator in the status bar. From there, you can also change the language version if doesn’t list any restrictions on the PHP version.
Named arguments
Function and method arguments in PHP 8 can be passed by specifying a parameter name. This eliminates the need to set optional parameters, and it means calls are now self-documented.
PhpStorm can help:
- Check that argument names are correct.
- Add parameter names automatically with an Alt+Enter quick-fix.
- Remove redundant arguments.
Constructor property promotion
This feature lets you reduce the amount of boilerplate code when you initialize variables through a constructor.
In PhpStorm, you can convert constructor-initialized properties into promoted properties or change them back with Convert to promoted property Alt+Enter quick-fix.
Nullsafe operator
Instead of having to use cumbersome conditions with null checks, the new operator allows you to build chains of calls with implicit checks for null for each element.
PhpStorm makes sure that the operator is being used correctly.
Match expression
The new expression is a type safe and compact alternative to the statement. A expression can be used as a value and assigned to a variable or returned.
PhpStorm will determine whether a block can be converted to a expression, and it will automatically do so with an Alt+Enter quick-fix.
With the new expression it might be hard to see misusages. PhpStorm will highlight them for you.
New functions for strings: str_contains(), str_starts_with(), str_ends_with()
In PHP 8, you can use the function to determine whether a string is part of another string. PhpStorm 2020.3 draws your attention to any usages of that can be replaced with .
PhpStorm also highlights the places where old calls can be replaced with the new, more self-explanatory and functions.
Define exit points
By using the directive, you can explicitly instruct PhpStorm that the specified function acts as an exit point. The call of such a function is treated as a terminating call, similarly to the calls of the PHP built-in exit or die functions. The directive is specified as follows:
exitPoint(functionFQN( ));
Where can be a string literal or a class constant. If an optional argument is provided, only the function call with this argument will be treated as an exit point. Otherwise, execution will continue normally.
As an example, consider the following code sample:
class Application {
public function terminate($param) {
exit();
}
public function run() {
$this->terminate(‘foo’);
echo «Hello»;
$this->terminate(‘bar’);
echo » world!»;
}
}
To mark the method call as an exit point, add the following line to the metadata file:
exitPoint(Application::terminate(‘bar’));
As a result, the call with the argument provided will act as an exit point. The last line of the method will therefore be treated as unreachable:
HTTP клиент
Поддержка формата cURL
Почти все веб-инструменты для разработки и документации сейчас предоставляют возможность скопировать запрос как cURL-строку.
Теперь эту строку можно использовать в PhpStorm. Создайте файл с расширением .http или новый HTTP-request scratch file с помощью сочетания клавиш , и затем вставьте строку запроса cURL. Она автоматически будет сконвертирована в полный запрос, и дальше можно удобно экспериментировать с заголовками и другими параметрами запроса.
HTTP клиент хранит куки
Допустим, вы тестируете сервис и делаете запрос, чтобы аутентифицироваться, а затем в следующем запросе вызываете закрытый эндпоинт. Раньше куки-файл с информацией о сессии из первого запроса был бы утерян. А в 2019.2 все куки сохраняются и передаются в последующих запросах.
Если вы не хотите, чтоб куки сохранялись, используйте тег для конкретного запроса.
Поддержка формата PHPT
Хотели бы контрибьютить в сам PHP и присоединиться к PHP Internals? Лучший способ — начать с документации и тестов! К счастью, для этого нет необходимости знать C. Тесты для PHP пишутся в специальных файлах .phpt. По сути, это текстовый файл, разбитый на несколько секций, некоторые из которых могут содержать PHP-код.
Так вот, в PhpStorm 2019.2 есть и поддержка phpt-файлов! Секции подсвечиваются, PHP и INI автоматически внедряются там где нужно, работают переходы на внешние файлы в соответствующих секциях.
Больше информации о написании тестов для PHP есть тут: PHP TestFest Tutorials, PHP Internals Book и qa.php.net.
Подключение Bootstrap в PhpStorm
Если все css и js исключить глобально, тогда, например, подключенный в шаблоне сайта Bootstrap не будет в автокомплите, только в том файле, где подключали локально.
В этом случае все сторонние библиотеки можно подключить в
Languages & Frameworks -> PHP -> Include Path
Для этого я содержу специальную папку и добавляю ее сюда, где плюсик справа.
Содержимое этой папки
Все, после подключения Bootstrap 4 в PhpStorm он будет видеть его глобально по всему проекту, автокомплит классов Bootstrap 4 будет работать везде.
Если зажать клавишу и кликнуть мышью по классу , то PhpStorm откроет подключенный мной файл
Version Control
Новый способ коммита без диалога
Предположим, вы изменили несколько файлов в разных папках проекта. Чтобы закоммитить их, вы идете на вкладку Local Changes окна Version Control, выбираете нужные файлы и вызываете диалог коммита. В этот момент все блокируется всплывающим окном, и вы не можете посмотреть проект.
Теперь, работая над коммитом, вы можете просматривать весь проект, историю и, вообще, делать в IDE все что угодно.
Фича отключена по умолчанию. Чтобы попробовать ее, поставьте галочку “Commit from the Local Changes without showing a dialog” в Preferences | Version Control | Commit Dialog.
Напоминания о связанных файлах
Когда вы формируете коммит, PhpStorm 2019.2 может подсказать вам добавить файлы, которые раньше часто изменялись вместе с теми, которые вы уже выбрали для коммита.
Улучшена работа с .gitignore
PhpStorm поддерживает из коробки и подсвечивает игнорируемые файлы в Project view.
Стало чуть легче добавлять в . Это можно сделать в окне Version Control, вызвав Add to .gitignore из контекстного меню на файлах, которые еще не добавлены в систему контроля версий.
В самом файле теперь есть автодополнение путей, и по файл будет выделен в Project view.
Сравнение текущего состояния с любой веткой
Для этого достаточно вызвать команду Show Diff with Working Tree из попапа Git Branches, который показывается по клику на имени текущей ветки в правом нижнем углу.
История директорий из Project View
Можно выделить несколько папок в Project View и посмотреть историю изменений для них с помощью команды Git | Show History from из контекстного меню.
Define method’s return type
In many cases, it is not possible to clearly infer the return type of the function based on the function’s code itself. By using the directive, you can explicitly instruct PhpStorm that the specified function returns the entity of a certain type based on the provided arguments.
The directive is specified as follows:
override(functionFQN, overrideDirective);
Where can be one of the following:
-
: sets the function’s return type to the type of the passed argument.
-
: if the passed argument is an array, sets the function’s return type to the type of the elements contained in the array.
-
: sets an arbitrary mapping between the argument value and the function’s return type.
EditorConfig
Добавляя файл .editorconfig, вы делаете разработку в команде более приятной, так как определенные опции стиля будут у всех работать одинаково независимо от используемого редактора.
Раньше в PhpStorm требовалось установить плагин EditorConfig, но в 2019.2 он доступен из коробки и дополнительных действий не требуется.
Вы можете использовать задавать разные настройки для разных подпапок в проекте. Просто создаете в нужных папках файлы — их в проекте может быть сколько угодно.
Кроме стандартных для EditorConfig опций, можно конфигурировать почти все опции стиля, специфичные для PhpStorm. Раньше их можно было конфигурировать только из UI. Такие опции обозначаются префиксом , чтобы отличаться от стандартных.
Если вы создаете новый файл .editorconfig из Project View, то PhpStorm предложит вам выбрать, какие опции включить в созданный файл. Они будут добавлены закомментированными, и нужные можно раскомментировать и поменять.