<
  • Главная
Статьи

Робота з Symfony2 в PhpStorm

  1. установка
  2. Налаштування проекту
  3. Update від 07.10.2015

PhpStorm відмінна IDE. Але навіть з відмінним інструментом робота перетворюється в це , Якщо неправильно ним користуватися.

Це стосується і роботи з Symfony2 проектами. PhpStorm забезпечує непогану підтримку цього фреймворка з коробки, але потрібно більше золота. Що ж ми отримаємо в результаті:

  • сервіси
    • Автокомпліт по іменах сервісів в методі get () контейнера, в yml, xml і взагалі скрізь, де ви будете вказувати сервіси.
    • В тому числі авто-визначення класу об'єкта сервісу з усіма наслідками (підказки по методам та ін.)
    • Перехід до класу сервісу з будь-якого його виклику по Ctrl + клік.
    • Індексація сервісів "на льоту" без необхідності перекомпіляції контейнера. Не завжди все індексує.
  • Роутінг
    • Автокомпліт Рауса всюди де тільки можна.
    • Перехід до екшену по Ctrl + клік на ім'я роута.
    • Фолдінг Рауса в реальний URL.
    • Автокомпліт параметрів роута.
    • Перехід в один клік від екшену контролера до шаблону. Або, якщо шаблону немає, можливість його створити. На полях зліва від імені екшену.
  • форми
    • Автокомпліт параметрів для налаштування форм (які задаються звичайним масивом).
    • Автокомпліт типів полів. У тому числі в самописних анотаціях, наприклад, до сутностей.
  • Doctrine
    • Автокомпліт в анотаціях сутностей.
    • Автокомпліт назв сутностей.
    • Визначення класів репозиторіїв з подальшим автокомплітом методів.
    • Підтримка QueryBuilder і Query. Мені не особливо сподобалося, багато методи не бачить.
  • Twig
    • Підказки по будь-яким Twig функцій, модифікаторам і змінним (в тому числі глобальним), в тому числі з ваших власних розширень.
    • Можливість перейти до визначення Twig-финкции, модифікатора, змінної по Ctrl + клік.
    • Автокомпліт імен успадкованих через {% extends%} блоків.
    • Автокомпліт і фолдінг імен шаблонів.
    • Підказки по translate'ам, їх фолдінг в текст. Перехід по Ctrl + клік до визначення.
    • Підказки по Ассет, їх аналіз на валідність. У тому числі Ассет з конфігов через AssetManager.
    • Підказки по макросам.
  • Нові вкладки IDE
    • Повна структура проекту з розбивкою на контролери, шаблони та інше. Вкладка Framework.
    • Швидкий пошук по ресурсах Symfony2. Вкладка Symfony2.
  • анотації
    • Автокомпліт будь-яких сторонніх анотацій і їх параметрів.
  • Зручна інтеграція з PHPUnit і запуск тестів прямо в IDE
  • Напевно ще щось є, а я просто забув.

установка

Нам знадобляться всього три плагіна:

Тому перш за все потрібно все це встановити. Відкриваємо налаштування (Ctrl + Alt + S), розділ Plugins. І тиснемо середню кнопку під списком: Browse repositories ... У вікні знаходимо вищевказані плагіни і встановлюємо їх в такому ж порядку, як вище, тому що вони залежні. Тепер тиснемо OK і перезапускаємо PhpStorm. Тепер в списку плагінів у вас має бути приблизно таке:

Тепер в списку плагінів у вас має бути приблизно таке:

Налаштування проекту

Далі нам знадобиться проект на Symfony2. Створюємо новий проект з готових файлів, або відкриваємо свій, а можна створити проект через FTP . Загалом, потрібен проект.

Швидше за все, PhpStorm зараз сам визначить, що проект на Symfony2 і запропонує включити інтеграцію. Можна сміливо з ним погоджуватися, однак автоматично налаштується далеко не всі.

Заходимо знову в налаштування (Ctrl + Alt + S), в розділ PHP -> Framework Integration. Ставимо галочку Enable framework integration і вибираємо в списку Symfony2. Далі вручну проставляем ролі папок проекту. Щоб вказати папці роль потрібно мишкою клацнути на другу колонку, з'явиться список, що випадає. Якщо ви працюєте з Symfony2, то інтуїтивно здогадаєтеся що куди, але про всяк випадок наводжу скріншот:

Тепер йдемо в розділ налаштувань Symfony2 Plugin. Ставимо галочку Enable plugin for this project. І перезапускаємо PhpStorm. На цьому настройка проекту закінчена, пробуйте.

Звичайно всі ці плагіни мають ще купу налаштувань, в яких копайтеся вже самостійно. У 99% випадків міняти там нічого не доведеться.

Увага. Для коректної роботи половини зазначених фішок потрібна наявність деяких файлів з кеша:

  • Потрібен файл app / cache / dev / appDevUrlGenerator.php, інакше будуть проблеми з підказками по Рауса.
  • Потрібна папка app / cache / dev / translations, інакше доданок не буде видить translation'и.
  • Потрібен файл app / cache / dev / appDevDebugProjectContainer.xml, інакше не буде подскозок по сервісах або вони будуть кульгати.

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

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

Update від 07.10.2015

У більш нових версіях PHP Storm вкладка Framework Intergration може бути відсутнім. Якщо у вас саме так, то слід вручну встановити плагін Framework MVC Structure Support зі сховищ і вкладка з'явиться. Framework Intergration з'явиться в розділі Other Settings.



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью