Профайлеры 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 поставляется с расширениями основных функций и примерами инфраструктуры миграции. Его можно легко реализовать в виде объектов конфигурации, которые адаптируются с точки зрения загрузки, модификации и последующего сохранения.

Вывод

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

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

MODX (читается «мо́дэкс») — это бесплатная профессиональная система управления содержимым (CMS) и фреймворк для веб-приложений, предназначенная для обеспечения и организации совместного процесса создания, редактирования и управления контентом (то есть содержимым) сайтов.

MODX распространяется бесплатно по лицензии GPL с открытым исходным программным кодом (Open Source). Это означает, что систему MODX может использовать каждый: как для личного использования, так и для коммерческого распространения сайтов, построенных на данной системе управления.

MODX написана на программном языке PHP и использует для хранения данных СУБД MySQL или MS SQL. Система управления MODX может быть установлена на большинстве веб-серверов (например, таких как IIS, Apache, Lighttpd, Nginx и Zeus), а контрольная панель системы (или админ-зона) работает практически во всех современных браузерах.

Ссылка на ресурс: https://modx.com/

Общие теги шаблона MODX

На этой странице перечислены наиболее часто используемые теги MODX Revolution в помощь любому, кто конвертирует макеты HTML/CSS в шаблоны MODX. Их часто называют «тегами» или «заполнителями» (а иногда и «переменными шаблона»), поэтому мы упоминаем эти термины здесь как помощь в поиске, хотя с технической точки зрения они не являются заполнителями или переменными шаблона: это теги MODX. Да, это может сбить с толку новичка, поэтому просто помните, что существуют разные виды этих тегов, каждый со своим назначением и названием. Заполнители задаются в коде и отображаются с тегами заполнителей. Переменные шаблона — это дополнительные поля содержимого ресурса, созданные пользователем. Их можно рассматривать как настраиваемые поля. Ни заполнители, ни переменные шаблона не устанавливаются ядром MODX заранее.

Теги поля содержимого ресурса по умолчанию

В MODX Revolution каждая страница всегда будет иметь следующие поля содержимого, которые вы можете использовать при создании своих шаблонов. За исключением идентификатора ресурса и родительского поля, все они предоставляются пользователем при редактировании ресурса и могут быть пустыми, если пользователь их не заполнил:

ЯрлыкОписаниеПример использования
[[*id]]Идентификатор ресурса страницы (устанавливается MODX при создании страницы.Часто используется в сочетании с синтаксисом ссылки, например <a href="[[~[[*id]]]]">Bookmark this page!</a>
[[*pagetitle]]Название страницы.<title>[[*pagetitle]]</title>
[[*longtitle]]Длинное название страницы<h1>[[*longtitle]]</h1>
[[*alias]]Асевдоним страницы.Используется для создания URL-адреса страницы.
[[*description]]Страница Описание<meta name="description" content="[[*description]]"/>
[[*introtext]]Поле «Вводный текст» (также известное как сводка).Часто используется Snippets для обобщения постов, например<div id="summary">[[*introtext]]</div>
[[*parent]]ID родительской страницы (если есть). Устанавливается MODX при создании страницы. Может быть изменен пользователем.Часто используется в сочетании с синтаксисом ссылки, например<a href="[[~[[*parent]]]]">Up to parent page</a>
[[*menutitle]]Заголовок, используемый, когда страница появляется в меню.Чаще всего используется сниппетами, такими как Wayfinder или pdoMenu, при динамическом построении меню .
[[*content]]Содержание страницы.<body>[[*content]]</body>

Другие общие теги

Эти теги представляют системные настройки, которые можно редактировать в меню «Система» -> «Настройки системы» .

ЯрлыкОписаниеПример использования
[[++site_url]]Содержит URL вашего сайта, например http://www.yoursite.com/Во многих CMS, которые полагаются на перезапись Apache, обычной практикой является включение базового тега в ваш HTML-заголовок: <base href="[[++site_url]]" />
[[++site_name]]Название сайта`

Источник: https://docs.modx.com/current/en/building-sites/tag-syntax/common

Как сгенерировать 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/