Когда начинается новый проект всегда возникает вопрос - что взять за основу для проекта? Если мы говорим о разработке на Drupal, то, конечно, нужно взять просто Drupal подумают многие. Я бы согласился с этим если мы говорим о небольшом сайте, который делает один человек. Если над проектом работает несколько человек или проект среднего или крупного размера, то нам нужно задуматься о том, чтобы:
- людям было бы удобно с ним работать;
- в него входили бы утилиты для работы с проектом в течении жизни проекта или мы могли бы добавить нужные нам инструменты легко и просто;
- повысить эффективность работы с проектом.
У тех, кто занимается разработкой веб-приложений постоянно, обычно есть заготовки, которые они берут для новых проектов. В этой статье я рассмотрю несколько таких шаблонов и попробую разобраться какие лучше подходят для каких задач.
Decoupled Drupal with GraphQL and React от AmazeeLab.
Как легко понять из названия этот шаблон может быть использован для создания decoupled веб приложения на Drupal используя React на стороне клиента и GraphQL на стороне сервера.
В проект входит:
После установки, проект предоставит два url по которым будут доступны front-end и back-end части. Этот проект поддерживается компанией Amazee Lab, которая активно работает и развивает decoupled подход в веб программировании.
Рекомендую этот проект как стартовый если вы решили использовать GraphQL и React у себя на проекте.
Ссылка на проект - https://github.com/drupal-graphql/drupal-decoupled-app
Decoupled Drupal with React от SystemSeed
В проект входит:
- Docker image
- Drupal 8
- Contenta CMS
- React framework Next.js
- Подготовленная конфигурация для деплоя на platform.sh
- 3 типа тестов
После установки проекта вам также будет сразу доступно два адреса: для front-end и back-end. Для передачи данных используется JSON API.
Данный шаблон предоставляет команды для автоматизации частых действий, которые могут быть использованы при установке проекта, настройке Continuous Integration или при локальной разработке.
Если вы делаете decoupled веб приложения и используете platform.sh, то этот шаблон то, что вам нужно.
Ссылка на проект - https://github.com/systemseed/drupal_reactjs_boilerplate
BLT от Acqua.
BLT (Build and Launch Tool) предоставляет средства для разработки, тестирования и развертывания приложений на Drupal 8.
Продукт поставляется с DrupalVM, которое устанавливается буквально одной командой, c настроенной конфигурацией для типового проекта. Так что членам вашей команды не придется тратить время на установку окружения у себя на компьютере. Все что вам нужно для разработки (Apache, Nginx, SOLR, PHP, Xdebug, Memcache) будут установлены при установке DrupalVM. И, таким образом, можно гарантировать, что окружение у всех разработчиков будет одно и тоже.
BLT предоставляет множество команд, для упрощения работы с проектом. Он добавляет дополнительный уровень абстракции и скрывает под собой привычные drush и shell команды.
Например, в BLT идут встроенные команды для валидации кода. Так, запустив команду blt validate:all
мы можем:
- запустить phpcs для проверки нашего кода на соответствие стандартов кодирования Drupal;
- проверить composer.json и composer.lock;
- убедиться, что синтаксис yml файлов в проекте правильный;
- проверить синтаксис twig файлов.
Конечно, при желании все эти тесты можно запустить по-отдельности. Это очень удобно, когда сразу после установки проекта можно уже начинать работать, а не тратить время на то, чтобы разобраться с каждым инструментов по-отдельности. Также BLT может быть использован в Continuous Integration, что также упрощает жизни разработчику.
Используя BLT можно легко и просто запускать PHPUnit, Behat тесты, интегрировать свои тесты, а также проверять обновления безопасности модулей.
Отдельно я бы хотел отметить инструменты по деплою на Acqua Cloud. Если вы работали с этой платформой, то знаете, что деплой туда происходит не очень удобно для разработчика. BLT позволяет автоматизировать этот процесс, скрыв все манипуляции по деплою за одной командой.
По-умолчанию BLT поставит вам Drupal с профилем Lightning и огромное количество модулей, о которых вы, может быть, никогда не слышали. Это я бы отнес к минусам данного продукта потому, что выключение и удаление ненужных модулей занимает какое-то время после инсталляции проекта.
Использовать Acquia BLT я бы рекомендовал если:
- вы работаете с Acquia Cloud или Acquia Cloud Site Factory;
- у вас крупный проект уровня Enterprise;
- у вас большая команда разработчиков.
Как вы видите, этот продукт не для новичков. Но для экспертов он может сильно облегчить процесс разработки и сопровождения проектов.
Ссылки