Ускорение разработки Drupal с Drupal Console и Drush

Опубликовано: 2022-02-22

Мы много писали (мы занимаемся этим) о том, как Drupal 8 не только модернизировал цифровые возможности для пользователей, но и облегчил работу разработчиков Drupal. В этой статье мы собираемся обсудить два таких служебных инструмента Drupal 8/9, которые значительно упростили и улучшили способ работы с кодом, модулями и установками Drupal — Drupal Console и Drush.

Консоль Друпала

Что такое Drupal-консоль

С появлением Drupal 8 стало необходимо добавлять много стандартного кода для создания нового модуля. Конечно, вы можете просто скопировать и вставить код, но многократное повторение может привести к большому количеству ошибок. Ничего страшного. Мы люди. К счастью, у нас есть консоль Drupal — набор инструментов, запускаемых через CLI (интерфейс командной строки), который позволяет автоматически генерировать шаблонный код. Он использует консоль Symfony и другие сторонние компоненты для генерации большей части кода, необходимого для создания модуля Drupal 8/9.

Что такое Друш

Drush (Drupal + Shell) — это оригинальный инструмент командной строки для Drupal. Он позволяет легко запускать новые веб-сайты Drupal и помогает оптимизировать задачи разработки и администрирования. Drush поставляется со многими простыми в реализации командами, которые позволяют вам взаимодействовать с вашими установками Drupal, темами, модулями и многим другим. Некоторые другие задачи, которые вы можете выполнять с помощью Drush, включают экспорт/импорт конфигураций, кэширование, обновление модулей contrib, обновление базы данных и многое другое.

Drush хорошо работает с Drupal 6/7/8/9 и предлагает преимущества современных методов разработки. Это помогает сэкономить время разработки как при переносе существующих модулей Drupal, так и при создании новых, тем самым повышая производительность. В этой статье вы узнаете, как создавать собственные пользовательские команды Drush.

Установка консоли Drupal

Консоль Drupal можно установить различными способами, такими как composer, curl, phar и т. д. Вот пример ее установки с помощью composer:

Установить глобально через композитор

 composer global require drupal/console

Установка для конкретного сайта

1. Перейдите на сайт Drupal в CLI:

 cd /path/to/drupal_site

2. Выполните команду composer require:

 composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader

Установка Друша

Drush можно установить различными способами, такими как composer, curl или phar. Вот пример установки с помощью композитора:

Установить глобально через композитор

 composer global require drush/drush

Установка для конкретного сайта

1. Перейдите на сайт Drupal в CLI:

 cd /path/to/drupal_site

2. Выполните команду composer require:

 composer require drush/drush

Команды консоли Drupal и их использование

Ознакомьтесь с некоторыми из самых популярных и полезных команд Drupal Console и узнайте, когда их можно использовать.

  • Команда отладки Drupal

  • Чтобы определить точки останова при работе над темами:
 drupal debug:breakpoints {theme_name}

Пример: drupal debug:точки останова bartik

  • Чтобы легко найти класс и имя сервиса при работе с сервисами:
 drupal debug:config:settings
  • Чтобы определить точку отказа, когда у вас есть болезненные сломанные блоки:
 drupal debug:plugin block broken
  • Создание пользовательских модулей

Создавайте собственные модули за минуту с помощью этой команды:

 drupal generate:module \ --module="modulename" \ --machine-name="modulename" \ --module-path="/modules/custom" \ --description="My Awesome Module" \ --core="8.x" \ --package="Custom" \ --module-file \ --composer \ --test \ --twigtemplate
  • Создать пользовательскую форму

Требования к пользовательским формам очень распространены в проектах. Легко создать пользовательскую форму с помощью этой команды:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Создать форму конфигурации

Как и в случае с пользовательскими формами, нам также требуются формы, настроенные администратором. С помощью этой команды вы можете легко их создать:

 drupal generate:form:config \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • Создать контроллер

Для пользовательских форм вам понадобятся контроллеры. Вы можете легко создавать собственные контроллеры с помощью этой команды:

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • Создать пользовательскую сущность

Создание пользовательского объекта не должно занимать много времени. С помощью этой команды вы можете создать его быстро и легко:

 drupal generate:entity:content \ --module="modulename" \ --entity-class="DefaultEntity" \ --entity-name="default_entity" \ --base-path="/admin/structure" \ --label="Default entity" \ --is-translatable \ --revisionable --has-forms
  • Создать специальную услугу

Эта команда поможет вам создать пользовательские сервисы:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • Создавайте контент, как пользователь: создать

Чтобы создать пользователя из серверной части, вам не нужно открывать браузер и входить в систему с правами администратора, а затем создавать учетную запись. Просто используйте эту команду, чтобы создать пользователя в один миг:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • Сгенерировать плагин как блок

Консоль Drupal также способна генерировать множество плагинов, таких как блоки. Вот пример создания пользовательского блока:

 drupal generate:plugin:block \ --module="modulename" \ --class="DefaultBlock" \ --label="Default block" \ --plugin- \ --theme-region="header" \ --inputs='"name":"inputtext", "type":"text_format", "label":"InputText", "options":"", "description":"Just an input text", "maxlength":"", "size":"", "default_value":"", "weight":"0", "fieldset":""'

Чтобы узнать больше о консольных командах Drupal и их использовании, проверьте доступные команды.

Самые популярные команды Drush

драш кр Чтобы восстановить кеш Drupal
драш цим Чтобы импортировать все файлы конфигурации
драш секс Экспорт файлов конфигурации
друш ули Для входа с использованием одноразового URL-адреса входа
drush en {имя_модуля} Включает любой модуль, либо пользовательский, либо вклад, либо ядро
drush pmu {имя_модуля} Отключает и удаляет любой модуль
драш вечера: список Список всех модулей с пакетом, именем модуля, версией и статусом.
драш updb Обновление базы данных после обновления
drush watchdog: список (ws) Список всех сообщений сторожевого таймера
сторожевой пес дроша: хвост (wt) Непрерывные сообщения сторожевого таймера
сторожевой таймер drush:tail --type=php Непрерывные сообщения сторожевого таймера с определенным типом серьезности

Еще несколько крутых команд Drush

драш-статус Предоставляет обзор текущей установки Drupal.
генерировать драш Как и в Drupal Console, команда drush generate помогает создавать объекты, плагины и многое другое.
драш вечера: безопасность Чтобы проверить пакет Drupal composer на наличие обновлений безопасности
драш-миграция:статус Список всех миграций с текущим статусом
пользователь drush: пароль {имя пользователя} {пароль} Устанавливает пароль пользователя
пользователь drush: заблокировать Помогает заблокировать пользователя
drush пользователь:роль:добавить Помогает добавлять роли пользователей
drush sql-дамп Экспортирует базу данных Drupal в виде SQL с помощью mysqldump или его эквивалента.