Рейтинг:-1

Как создать собственный пример модуля?

флаг cn

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

пример.info.yml

имя: пример
тип: модуль
core_version_requirement: ^8 || ^9
описание: 'пример'

пример.php

<?php
?>

Предполагая, что это правильный путь и ничего существенного не упущено, как осуществляется соединение между двумя файлами (не должен ли я уведомить example.info.yml о example.php)?

leymannx avatar
флаг ne
Минимум - это просто информационный файл.
Рейтинг:-1
флаг cn

Как связаны файлы

Drupal автоматически выполнит файл PHP с именем модуля и расширение .module; это частный случай.

Итак, вам нужно переименовать пример.php к пример.модуль.

Если вы хотите добавить дополнительные файлы PHP, которые не являются классами, вам нужно будет включить их.

Например, если я добавляю файл пример.mail.php, и я хочу включить это, мне нужно включить это в пример.модуль как это:

include_once 'example.mail.inc';

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

Проверка включения example.module

Вы можете использовать Модуль разработки с kint для отладки Drupal, и это относительно простой способ проверить, подключается ли файл.

Если вы включите модуль Devel, добавьте следующий код в пример.php, а потом восстановить кеш, Drupal будет использовать kint для печати идентификатора формы на каждой странице, содержащей форму.

function example_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  вид ($ form_id);
}
Kevin avatar
флаг in
На самом деле вы бы не использовали операторы include или require, они были бы классами/сервисами, вызываемыми или внедряемыми где угодно в Drupal. Имя файла для хуков также должно заканчиваться на .module.
флаг cn
@Kevin Упс, хорошее замечание по поводу имени файла. Лично я использую include для разделения различных типов хуков; Я добавил примечание, чтобы сделать это более ясным.
4uk4 avatar
флаг cn
В Drupal 8/9 файлы PHP находятся в каталоге src/, где они обнаруживаются [автозагрузчиком] (https://www.drupal.org/docs/develop/standards/psr-4-namespaces-and-autoloading-in -друпал-8). Существуют определенные PHP-файлы, которые Drupal включает в обход автозагрузчика, например этот файл .module.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.