Понимание хуков
Хуки являются одним из способов взаимодействия модулей с добавленными модулями или подсистемами ядра Drupal. Хуки используются для различных задач, включая переменные предварительной обработки для файлов шаблонов (hook_preprocess()), изменение списков информации (hook_tokens_alter(), hook_views_data_alter()) и манипулирование формами (hook_form_alter()) среди других вещей. На этой странице перечислены все хуки, предоставляемые ядром.
Модули могут определять свои собственные дополнительные хуки. Например, модуль Flag определяет hook_flag_options_alter(), который может использоваться модулями, которые хотят изменить параметры существующего флага по умолчанию. Большинство модулей, которые определяют хуки, также предоставляют документацию о них. Эта документация находится в файле *.api.php.
Хуки происходят в разных точках потока выполнения, где Drupal ищет вклады от всех включенных модулей. Например, когда пользователь посещает страницу справки на сайте Drupal, когда Drupal создает страницу справки, он дает каждому модулю возможность представить документацию о себе. Это делается путем сканирования всех включенных модулей на предмет реализации hook_help(). То есть функции с именем mymodule_help ($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match), где «mymodule» - это имя модуля, например, хук справки модуля блока называется block_help(), а модуль узла Хук помощи называется node_help(). Хук может предоставлять параметры; Параметры hook_help $route_name и $route_match позволяют разработчику определять, на какой странице или страницах будут отображаться справочные сообщения.
Хук можно рассматривать как прослушиватель событий в том смысле, что событие запускает действие. Событие в Drupal, такое как удаление узла, вызовет ловушку "hook_node_delete". Если в вашем модуле реализовано hook_node_delete, эта функция будет запускаться при удалении узла. Например, ваша функция может заключаться в уменьшении количества всех узлов, поэтому при удалении узла вызывается ваша функция и уменьшается число на 1.
Смотрите также обзор хуков модулей в Справочнике по Drupal API. Возможно, вы захотите проверить и эту хорошую статью, в которой рассказывается о том, как работает система модулей / ловушек Drupal, используя простые конструкции / фрагменты PHP.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.