Профайлеры Drupal

Devel

Упрощает разработку, отладку и оптимизацию Drupal-сайтов. Включен по умолчанию в Drupal 8/9.

Ссылка: https://www.drupal.org/project/devel

WebProfiler

Отображает общее время построения страницы и какие блоки в ней используются. Показывает общее число SQL запросов, время их время выполнения и само содержимое запросов. Не показывает сколько по времени выполнялась та или иная PHP функция.

Ссылка: https://www.drupal.org/project/webprofiler

XHProf

Веб-интерфейс для расширения PHP XHProf (требует чтобы это расширение было уже заранее установлено). Показывает выполняемые PHP функции, сколько раз они вызывались и сколько было потрачено времени на каждую.

Ссылка: https://www.drupal.org/project/xhprof

Mix

Mix предоставляет ряд необходимых функций, которые нужны почти каждому проекту, но не включены в ядро ​​Drupal. Наиболее интересная функция включение режима разработки. Она позволяет отключить кеши Drupal и включите отладку twig без редактирования файлов настроек *.php и *services.yml.

Ссылка: https://www.drupal.org/project/mix

Инструменты необходимые для обновления модулей Drupal с версии 8 на 9

В Drupal 9 реализованы все возможности Drupal 8 и два раза в год продолжаются постоянные инновации, добавляя новые функции.

Это означает, что Drupal 9 равен Drupal 8 за вычетом устаревших API. Таким образом обновление не требует капитального ремонта инфраструктуры вашего сайта.

Поговорим  об инструментах которые потребуются для подготовки к обновлению Drupal.

Upgrade Status

О готовности Drupal 9 нельзя говорить без упоминания модуля Upgrade Status. Это первостепенный инструмент, необходимый для успешного обновления.

Он выполняет практически все основные функции, необходимые для подготовки к обновлению.

Предлагает вам обновиться до текущей версии

Проверяет, используете ли вы версию Drupal, поддерживающую обновление.

Предлагает вам проверить системные требования

Проверяет, соответствует ли ваша система системным требованиям следующей основной версии.

Предлагает вам сосредоточиться на проектах

Интегрируется со статусом обновления, чтобы информировать вас об обновлении ваших проектов. Проекты могут быть совместимы с несколькими основными версиями Drupal, поэтому большинство проектов можно обновить на существующем сайте до выполнения основного основного обновления.

Предлагает вам решать другие проблемы совместимости

Вы могли подумать, что этих трех должно быть достаточно, но это еще не все. Существует множество проблем совместимости с Drupal 9, которые необходимо решить с помощью запуска phpstan. И upgrade status тоже может это сделать.

Upgrade Status также может интегрироваться с drush. Вам нужно будет установить его с помощью Composer.

Drupal Check

Следующим важным инструментом для перехода на Drupal 9 является модуль Drupal Check. PHPStan был разработан как инструмент статического анализа, который может запускать автономный исполняемый файл PHP из командной строки.

Проверка сообщит обо всем устаревшем коде, который используется на вашем сайте.

Для беспрепятственного обновления ваша система должна быть на 100% совместимой с Drupal 9.

Но это похоже на модуль Upgrade Status.

Да. Есть некоторое сходство между Drupal Check и Upgrade Status в том, что обе они работают над установлением совместимости с Drupal 9. Однако я бы сказал, что Upgrade Status имеет гораздо больший масштаб.

Upgrade Rector и Drupal Rector

Вы бы предпочли использовать автоматизированный механизм для обнаружения нежелательных устаревших API перед обновлением D9 или предпочитаете делать это вручную? Я почти уверен, что ваш ответ будет напоминать мой и будет первым выбором.

И эти автоматические проверки устаревания и исправления кода идут вместе с Upgrade Rector. Это также позволяет вам вносить исправления как в собственные, так и в собственные проекты с помощью предложений. По сути, Upgrade Rector — это интегрированный пользовательский интерфейс Drupal для Drupal Rector.

Итак, что такое Drupal Rector?

Прежде чем я перейду к Drupal Rector, давайте немного разберемся с историей Rector. Это инструмент, который автоматизирует обновление кода PHP.

Drupal Rector взял эту концепцию и реализовал ее на Drupal. Drupal Rector обновляет устаревший API, используемый в Drupal.

IDE

Использовать IDE или редактор кода, который может легко и эффективно понять и определить устаревшие версии.

Почему это важно?

Для этого есть две причины;

  • Один из них связан с видимостью. Если ваша IDE понимает устаревшие версии, они будут очень заметны даже в процессе разработки.
  • А во-вторых, он отменяет вызовы устаревших методов и дополнительно информирует вас о правильном вызове.

PHPStorm один из примеров инструмента IDE, который очень удобен при рассмотрении вопроса об обновлении до Drupal 9.

Module Upgrader

Module Upgrader — это инструмент, более ориентированный на проекты, которые находятся на Drupal 7. Следуя сценарию командной строки с возможностью сканирования источника модуля D7, он может выделить код, несовместимый с Drupal 8 или 9.

Как это работает?

  • Он отмечает код, который необходимо обновить;
  • При необходимости он выделяет изменения API;
  • Он также может автоматически преобразовывать код D7 в D8 или 9.

Что в итоге?

У вас останутся обновленные модули, в коде которых не будет устаревших API. Как только это произойдет, вы станете на один шаг ближе к фактическому обновлению до Drupal 9. Помните, что модуль Drupal 8 без каких-либо устаревших рекомендаций является достаточно хорошим модулем Drupal 9, потому что единственное различие между ними — это устаревшие API.

Migrate Tools

Название достаточно ясное, Migrate Tools — это модуль, который предоставляет дополнительные инструменты для запуска, а также управления миграциями на Drupal 8.

Он работает с Drush и предоставляет команды для удобного управления.

  • Вы можете увидеть список миграций и их статус;
  • Вы можете выполнять операции импорта и отката;
  • Вы можете легко остановить работающую операцию;
  • Вы можете перечислить поля, доступные для сопоставления, и просмотреть сообщения, относящиеся к миграции.

Эти функции могут показаться небольшими, но они могут добавить много удобства, чтобы упростить самое простое обновление десятилетия.

Migrate Plus

Модуль Migrate Plus поставляется с расширениями основных функций и примерами инфраструктуры миграции. Его можно легко реализовать в виде объектов конфигурации, которые адаптируются с точки зрения загрузки, модификации и последующего сохранения.

Вывод

Теперь у нас есть необходимые инструменты, которые потребуются для запуска процесса обновления.

Как сгенерировать UUID в Drupal 8?

Чтобы сгенерировать UUID самостоятельно, понадобится сервис uuid:

$uuid = \Drupal::service('uuid');
$uuid_to_validate = $uuid->generate();
$uuid->isValid($uuid_to_validate);

Чтобы сгенерировать uuid с помощью drush:

sudo drush php-eval "echo \Drupal::service('uuid')->generate();"

Что такое Drupal и для чего он нужен

Drupal (Дру́пал) – это свободная открытая платформа (open source) для создания сайтов и разделенных (decoupled) систем. Платформа написана на языке PHP, в качестве хранилища информации использует реляционные базы данных. Исходный код распространяется под лицензией GNU GPL v2+, что позволяет использовать Drupal как для личных, так и для коммерческих целей, без дополнительного разрешения и отчислений.

Drupal позиционирует себя как Web Application Framework (WAF) – каркас, при помощи которого создаются не только веб-сайты, но и различные сетевые сервисы. Drupal также позиционируют как Content Management System (CMS), так и Content Management Framework (CMF).

Drupal – универсальный конструктор для построения веб-сайтов и сетевых ресурсов. На нём можно разрабатывать как домашние странички, так интернет-магазины, СМИ, государственные порталы, соц. сети и т.д.

Drupal предоставляет обширный API для разработчиков, но также может использоваться пользователями без навыков разработчика.

Ссылка: https://www.drupal.org/