[Из песочницы] Sublime Text 3 плагин «Symfony2 Override» для быстрого переопределения части бандлов
Всем привет.Каждый, кто программирует на Symfony 2, сталкивался с ситуацией, когда надо переопределить какой-то файл стороннего бандла. Будь то Twig-шаблон, контроллер или файл с переводом.
Если бандл, который вы кастомизируете имеет хоть сколь-нибудь сложную систему вложенности файлов, то их переопределение становится не очень занимательной задачей.
Например? Показательным может быть e-commerce проект Sylius, в котором для переопределения, скажем, шаблона отображения продукта /vendor/sylius/sylius/src/Sylius/Bundle/WebBundle/Resources/views/Frontend/Product/show.html.twig придется создавать целую иерархию папок app/Resources/SyliusWebBundle/views/Frontend/Product вручную, чтобы в итоге положить туда файл show.html.twig.
Собственно, с целью автоматизации данной операции родился плагин для Sublime Text 3, которым я хочу поделиться с Symfony2-разработчиками.Возможности Плагин умеет копировать текущий активный файл из бандла в папке vendors в выбранный бандл из папки src после нажатия Ctrl+Shift+O.На данный момент поддерживается копирование шаблонов, переводов, php-файлов, любых файлов из папки Resources/public. Шаблоны и переводы могут быть скопированы как в бандл, так в соответствующее место директории app.
Ограничения — на данный момент плагин может работать только с файлами из библиотек оформленных по стандарту PSR-0 и находящихся в папке vendor; — тестировался только в Sublime Text 3 под Ubuntu; — плагин еще не принят в PackageControl.io, потому придется ставить руками (инструкция есть) уже принят, можно устанавливать прямо из Sublime Text 3.Планы — Поддержка бандлов, оформленных по стандарту PSR-4; — Рекурсивное переопределение папок; — Автоматическая подстановка правильного namespace в скопированный файл уже реализовано; — И другое.Для чего я сделал публикацию на хабре? Есть наболевшая (не только для меня, правда же?) проблема и я хочу поделиться ее решением, которое уже может кому-то пригодиться.Спасибо за внимание.Буду рад любому отклику — отзыв, совет, пул-реквест.
Ссылки— Плагин на Package Control; — Код плагина на github.com; — TODO.md.
UPD: С момента публикации этой статьи в песочнице, плагин был принят в packagecontrol.io, научился самостоятельно прописывать новый namespace в наследуемом php-файле и наследоваться от старого класса.