PhpStorm for Drupal developer
Lviv Euro Drupal Camp4.09.2016
Igor KarpilenkoDeweb Studio
СОДЕРЖАНИЕ
◈ 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◈ Полезные плагины
IDE
Интегрированная среда разработки (Integrated development environment) — комплекс программных средств, используемый программистами для разработки программного обеспечения.
Среда разработки обычно включает в себя:
◈ текстовый редактор,◈ компилятор и/или интерпретатор,◈ средства автоматизации сборки,◈ отладчик.
Ключевые возможности◈ Интеллектуальный редактор 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)
Лицензирование и обновление
Лицензия на PhpStorm постоянная и включает один год бесплатных обновлений (с даты покупки), в том числе переход с текущей мажорной версии на новую. Доступны следующие виды лицензий на PhpStorm:
◈ Персональная лицензия (платная, для индивидуальных разработчиков)◈ Коммерческая лицензия (платная, для компаний и организаций)◈ Лицензия для стартапов (скидка 50%)◈ Академическая лицензия (бесплатная, для студентов и
преподавателей)◈ Лицензия для образовательных учреждений (бесплатная)◈ Лицензия для проектов с открытым исходным кодом (бесплатная)
Персональная лицензия на 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
Дополнительные плагины для 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
Hook Support
QA Tools
COPYPASTE
Code → Locate duplicates
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
Настройка редактора - https://www.drupal.org/node/1962108#syntax-formatting
Drupal
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
Code Beautifier and Fixer
Установка:
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
Расширение под 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
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
vagrant IP
/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
Профилирование
May the Drush be with you
CTRL+SHIFT+X
Tools → Start SSH session
Меню появляется по клику на изменённую строку. Можно отменить изменения и посмотреть разницу. Версия до изменений
Новые строки отмечаются другим цветом
Измененные строки
Merge Conflicts
Commit Список изменённых файлов. Тут можно посмотреть разницу по каждому файлу и откатить изменяния.
Список доступных веток (локальных и в репозитории). Тут можно посмотреть разницу между текущей веткой, переключится на другую ветку или смерджить с ней текущую.
Integration with an issue Tracking System
1. Drupal.org issue tracker https://confluence.jetbrains.com/display/PhpStorm/Integration+with+an+Issue+Tracking+System+in+PhpStorm
2. Time Tracking Plugin https://blog.jetbrains.com/phpstorm/2016/08/time-tracking-plugin-in-phpstorm
Tools → Tasks & Contexts → Configure servers
{id} {summary}
Вкладка с задачами
Активная задача
Новая задача
Время, потраченное на
задачу
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
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
Databases and Sql Editor
Generating a UML database diagram
1. Выделить таблицы2. В всплывающем
меню нажать Diagrams - Show Visualisation
REST Client
◈ https://blog.jetbrains.com/webide/2013/02/using-the-rest-client-within-phpstorm/
◈ https://www.jetbrains.com/help/phpstorm/2016.2/rest-client-tool-window.html
Полезные Плагины
◈ 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
Hotkeys
◈ http://eax.me/intellij-idea-hotkeys/
◈ http://glide.name/2012/06/php-ide-phpstorm-tips-and-tricks/
Ссылки
◈ 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
Ссылка на презентацию
http://deweb.com.ua/blog/phpstorm-drupal-developer-igor-karpilenko-presentation
Recommended