98
PhpStorm for Drupal developer Lviv Euro Drupal Camp 4.09.2016 Igor Karpilenko Deweb Studio

Ігор Карпиленко — PHPStorm for drupal developer

Embed Size (px)

Citation preview

Page 1: Ігор Карпиленко — PHPStorm for drupal developer

PhpStorm for Drupal developer

Lviv Euro Drupal Camp4.09.2016

Igor KarpilenkoDeweb Studio

Page 2: Ігор Карпиленко — PHPStorm for drupal developer

СОДЕРЖАНИЕ

◈ Drupal в PhpStorm из коробки

◈ QA Tools◈ PhpStorm templates для

drupal◈ TODO list◈ Xdebug и Xdebug Profiler◈ Drupal.org issue tracker

◈ Drush◈ Terminal и ssh консоль◈ GIT◈ Vagrant | Docker integration◈ Database editor◈ REST client◈ Полезные плагины

Page 3: Ігор Карпиленко — PHPStorm for drupal developer

IDE

Интегрированная среда разработки (Integrated development environment) — комплекс программных средств, используемый программистами для разработки программного обеспечения.

Среда разработки обычно включает в себя:

◈ текстовый редактор,◈ компилятор и/или интерпретатор,◈ средства автоматизации сборки,◈ отладчик.

Page 4: Ігор Карпиленко — PHPStorm for drupal developer
Page 5: Ігор Карпиленко — PHPStorm for drupal developer
Page 6: Ігор Карпиленко — PHPStorm for drupal developer
Page 7: Ігор Карпиленко — PHPStorm for drupal developer

Ключевые возможности◈ Интеллектуальный редактор PHP кода с

подсветкой синтаксиса, автодополнением кода, расширенными настройками форматирования кода, предотвращением ошибок налету (поддерживает PHP 7.0, 5.6, 5.5, 5.4 и 5.3)

◈ PHP рефакторинги, code (re)arranger, детектор дублируемого кода

◈ Поддержка Vagrant, Composer, встроенный REST клиент, Command Line Tools, SSH консоль

◈ Поддержка фреймворков (Symfony, Magento, Drupal, Yii и другие)

◈ Интеграция с системами управления версиями

◈ Полный набор инструментов для фронтенд-разработки (HTML, CSS, JavaScript, Sass, Less, Stylus, Compass, CoffeeScript, TypeScript, ECMAScript Emmet и др.)

◈ Поддержка стилей кода, встроенные стили PSR1/PSR2, Symfony2, Zend, Drupal

◈ Удаленное развертывание приложений и автоматическая синхронизация с использованием FTP, SFTP, FTPS и др

◈ Интеграция с баг-трекерами◈ Инструменты работы с базами данных,

SQL редактор◈ Кросс-платформенность (Windows, Mac

OS X, Linux)

Page 8: Ігор Карпиленко — PHPStorm for drupal developer

Лицензирование и обновление

Лицензия на PhpStorm постоянная и включает один год бесплатных обновлений (с даты покупки), в том числе переход с текущей мажорной версии на новую. Доступны следующие виды лицензий на PhpStorm:

◈ Персональная лицензия (платная, для индивидуальных разработчиков)◈ Коммерческая лицензия (платная, для компаний и организаций)◈ Лицензия для стартапов (скидка 50%)◈ Академическая лицензия (бесплатная, для студентов и

преподавателей)◈ Лицензия для образовательных учреждений (бесплатная)◈ Лицензия для проектов с открытым исходным кодом (бесплатная)

Page 9: Ігор Карпиленко — PHPStorm for drupal developer

Персональная лицензия на phpstorm

◈ US $ 89.00 /1st year◈ US $ 71.00 /2nd year◈ US $ 53.00 /3rd yr onwards

https://www.jetbrains.com/phpstorm/buy/#edition=personal

Page 10: Ігор Карпиленко — PHPStorm for drupal developer
Page 12: Ігор Карпиленко — PHPStorm for drupal developer
Page 13: Ігор Карпиленко — PHPStorm for drupal developer

Дополнительные плагины для Drupal 8

◈ Symfony 2 pluginhttp://symfony2-plugin.espend.de

◈ Drupal Symfony 2 Bridge plugin https://github.com/Haehnchen/idea-php-drupal-symfony2-bridge

◈ PHP annotations plugin - ‘Just install and be happy’ https://github.com/Haehnchen/idea-php-annotation-plugin

Page 14: Ігор Карпиленко — PHPStorm for drupal developer

Hook Support

Page 16: Ігор Карпиленко — PHPStorm for drupal developer

QA Tools

Page 17: Ігор Карпиленко — PHPStorm for drupal developer
Page 20: Ігор Карпиленко — PHPStorm for drupal developer
Page 21: Ігор Карпиленко — PHPStorm for drupal developer

COPYPASTE

Page 22: Ігор Карпиленко — PHPStorm for drupal developer

Code → Locate duplicates

Page 23: Ігор Карпиленко — PHPStorm for drupal developer

PHP Copy/Paste Detector (PHPCPD)

https://github.com/sebastianbergmann/phpcpd

Установка:

◈ wget https://phar.phpunit.de/phpcpd.phar◈ chmod +x phpcpd.phar◈ mv phpcpd.phar /usr/local/bin/phpcpd

Пример:

phpcpd docroot --names="*.php","*.inc","*.module" --min-lines=10

Page 24: Ігор Карпиленко — PHPStorm for drupal developer
Page 26: Ігор Карпиленко — PHPStorm for drupal developer
Page 28: Ігор Карпиленко — PHPStorm for drupal developer
Page 29: Ігор Карпиленко — PHPStorm for drupal developer

Настройка редактора - https://www.drupal.org/node/1962108#syntax-formatting

Drupal

Page 30: Ігор Карпиленко — PHPStorm for drupal developer

PHP Code SnifferУстановка CodeSniffer:◈ sudo apt-get install php-pear◈ sudo pear update-channels◈ sudo pear install PHP_CodeSniffer

Добавление в CodeSniffer Drupal coding standards:◈ cd ~/◈ wget https://ftp.drupal.org/files/projects/coder-8.x-2.8.zip◈ unzip coder-8.x-2.8.zip◈ sudo mv coder/coder_sniffer/Drupal $(pear config-get

php_dir)/PHP/CodeSniffer/Standards/Drupal◈ rm -rf coder-8.x-2.8.zip coder

Проверка работы:phpcs --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,js path_to_drupal

https://www.drupal.org/project/coder

Page 31: Ігор Карпиленко — PHPStorm for drupal developer
Page 32: Ігор Карпиленко — PHPStorm for drupal developer
Page 34: Ігор Карпиленко — PHPStorm for drupal developer

Code Beautifier and Fixer

Page 35: Ігор Карпиленко — PHPStorm for drupal developer
Page 36: Ігор Карпиленко — PHPStorm for drupal developer
Page 38: Ігор Карпиленко — PHPStorm for drupal developer
Page 39: Ігор Карпиленко — PHPStorm for drupal developer

Установка:

1. https://bitbucket.org/ronolo/phpstorm-drupal-live-templates (D6/D7)

2. git clone --recursive http://git.drupal.org/project/phpstorm_templates.git drupal (D7/D8)

Положить файлы сюда:

◈ /home/USER/.PhpStorm2016.2/config/templates◈ /home/USER/.PhpStorm2016.2/config/fileTemplates

Page 40: Ігор Карпиленко — PHPStorm for drupal developer
Page 41: Ігор Карпиленко — PHPStorm for drupal developer
Page 44: Ігор Карпиленко — PHPStorm for drupal developer
Page 45: Ігор Карпиленко — PHPStorm for drupal developer
Page 47: Ігор Карпиленко — PHPStorm for drupal developer
Page 48: Ігор Карпиленко — PHPStorm for drupal developer

Расширение под chrome - https://chrome.google.com/webstore/detail/xdebug-helper/eadndfjplgieldjbigjakmdgkmoaaaoc?utm_source=chrome-app-launcher-info-dialog

Расширение под firefox - https://addons.mozilla.org/ru/firefox/addon/the-easiest-xdebug/

В настройках расширений

указать idekey: phpstorm

Page 49: Ігор Карпиленко — PHPStorm for drupal developer

https://xdebug.org/docs/install https://xdebug.org/docs/all_settings

/etc/php5/apache2/conf.d/xdebug.ini

[XDebug]zend_extension="/usr/lib/php5/modules/xdebug.so"xdebug.default_enable=1xdebug.remote_enable=1xdebug.remote_connect_back=1xdebug.remote_port=9009xdebug.idekey="phpstorm"xdebug.remote_handler=dbgpxdebug.coverage_enable=1xdebug.remote_log=/tmp/xdebug.logxdebug.remote_autostart=0xdebug.max_nesting_level=256

Page 50: Ігор Карпиленко — PHPStorm for drupal developer
Page 51: Ігор Карпиленко — PHPStorm for drupal developer
Page 52: Ігор Карпиленко — PHPStorm for drupal developer
Page 53: Ігор Карпиленко — PHPStorm for drupal developer
Page 54: Ігор Карпиленко — PHPStorm for drupal developer

vagrant IP

Page 55: Ігор Карпиленко — PHPStorm for drupal developer
Page 57: Ігор Карпиленко — PHPStorm for drupal developer

/etc/php5/apache2/conf.d/xdebug.ini

xdebug.profiler_enable_trigger = 1

xdebug.profiler_enable=0

xdebug.profiler_output_dir = /home/vagrant/camp16.local/tmp/xdebug

Tools - Analize Xdebug Profiler Snapshot

Профилирование

Page 59: Ігор Карпиленко — PHPStorm for drupal developer

May the Drush be with you

Page 60: Ігор Карпиленко — PHPStorm for drupal developer
Page 61: Ігор Карпиленко — PHPStorm for drupal developer

CTRL+SHIFT+X

Page 62: Ігор Карпиленко — PHPStorm for drupal developer

Tools → Start SSH session

Page 63: Ігор Карпиленко — PHPStorm for drupal developer
Page 64: Ігор Карпиленко — PHPStorm for drupal developer
Page 65: Ігор Карпиленко — PHPStorm for drupal developer
Page 66: Ігор Карпиленко — PHPStorm for drupal developer
Page 67: Ігор Карпиленко — PHPStorm for drupal developer
Page 68: Ігор Карпиленко — PHPStorm for drupal developer

Меню появляется по клику на изменённую строку. Можно отменить изменения и посмотреть разницу. Версия до изменений

Новые строки отмечаются другим цветом

Измененные строки

Page 69: Ігор Карпиленко — PHPStorm for drupal developer

Merge Conflicts

Page 70: Ігор Карпиленко — PHPStorm for drupal developer
Page 71: Ігор Карпиленко — PHPStorm for drupal developer

Commit Список изменённых файлов. Тут можно посмотреть разницу по каждому файлу и откатить изменяния.

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

Page 73: Ігор Карпиленко — PHPStorm for drupal developer
Page 75: Ігор Карпиленко — PHPStorm for drupal developer

Tools → Tasks & Contexts → Configure servers

Page 76: Ігор Карпиленко — PHPStorm for drupal developer

{id} {summary}

Page 77: Ігор Карпиленко — PHPStorm for drupal developer
Page 78: Ігор Карпиленко — PHPStorm for drupal developer
Page 79: Ігор Карпиленко — PHPStorm for drupal developer
Page 80: Ігор Карпиленко — PHPStorm for drupal developer

Вкладка с задачами

Активная задача

Новая задача

Время, потраченное на

задачу

Page 81: Ігор Карпиленко — PHPStorm for drupal developer

Vagrant

1. Создание virtual box (Tools | Vagrant) - Add vagrant box2. Инициализация VagrantFile (Tools | Vagrant | Init in Project Root)3. Запуск виртуальной машины (Tools | Vagrant | Up). Так же можно

выполнить следующие команды: reload, suspend, stop, halt, provision, resume, destroy.

4. Настройка удалённого php интерпретатора (см. в разделе xdebug)5. Подключение к SSH терминалу (Tools | Start SSH session)

https://confluence.jetbrains.com/display/PhpStorm/Configuring+PhpStorm+to+work+with+a+VM

Page 82: Ігор Карпиленко — PHPStorm for drupal developer

Docker integration plugin

◈ Добавление поддержки Docker в существующих проектах◈ Просмотр логов◈ Управление контейнерами◈ Отладка PHP приложений

https://blog.jetbrains.com/phpstorm/2015/10/docker-support-in-phpstorm/

https://confluence.jetbrains.com/display/PhpStorm/Docker+Support+in+PhpStorm

Page 83: Ігор Карпиленко — PHPStorm for drupal developer

Databases and Sql Editor

Page 84: Ігор Карпиленко — PHPStorm for drupal developer
Page 85: Ігор Карпиленко — PHPStorm for drupal developer
Page 86: Ігор Карпиленко — PHPStorm for drupal developer
Page 87: Ігор Карпиленко — PHPStorm for drupal developer
Page 89: Ігор Карпиленко — PHPStorm for drupal developer
Page 90: Ігор Карпиленко — PHPStorm for drupal developer

Generating a UML database diagram

1. Выделить таблицы2. В всплывающем

меню нажать Diagrams - Show Visualisation

Page 92: Ігор Карпиленко — PHPStorm for drupal developer
Page 93: Ігор Карпиленко — PHPStorm for drupal developer
Page 94: Ігор Карпиленко — PHPStorm for drupal developer

Полезные Плагины

◈ Markdown support◈ CSS Alphabetical Rearrenger ◈ Jira Browser◈ PHP RegExp Support◈ CMD support - https://github.com/t3hnar/CmdSupport◈ GitToolBox - https://plugins.jetbrains.com/plugin/7499?pr=idea_ce ◈ .ignore - https://github.com/hsz/idea-gitignore◈ Apache Config (.htaccess) support◈ What The Commit

Page 96: Ігор Карпиленко — PHPStorm for drupal developer

Ссылки

◈ https://confluence.jetbrains.com/display/PhpStorm/Drupal+Development+using+PhpStorm

◈ http://niklan.net/blog/46

◈ http://sherskova.ru/live-templates-v-phpstorm-dlya-drupal

◈ https://confluence.jetbrains.com/display/PhpStorm/Databases+and+SQL+Editor+in+PhpStorm

◈ https://confluence.jetbrains.com/display/PhpStorm/Working+with+todo+comments+and+the+todo+tool+window

◈ http://cweagans.net/2013/03/14/integrating-phpstorm-and-the-drupal-org-issue-queue/

◈ https://www.appnovation.com/blog/8-ways-phpstorm-can-improve-drupal-development

◈ https://confluence.jetbrains.com/display/PhpStorm/Working+with+Advanced+Vagrant+features+in+PhpStorm

Page 97: Ігор Карпиленко — PHPStorm for drupal developer

Ссылка на презентацию

http://deweb.com.ua/blog/phpstorm-drupal-developer-igor-karpilenko-presentation

Page 98: Ігор Карпиленко — PHPStorm for drupal developer