Esta seção reside em um controlador no módulo pai:
$plugin_items = [];
// Call modules that implement the hook, and let them add items.
\Drupal::moduleHandler()->alter('flot_examples_toc', $plugin_items);
if (count($plugin_items > 0)) {
$output['plugins'] = [
'#title' => 'Plugins',
'#theme' => 'item_list',
'#items' => $plugin_items,
];
}
E isso reside no arquivo .module filho [módulo].
use Drupal\Core\Url;
function mymodule_flot_examples_toc_alter(&$item_list) {
$options = [
':one' => Url::fromRoute('flot_spider_examples.example')->toString(),
];
$item_list[] = t('<a href=":one">Spider Chart</a> (with spider plugin)', $options);
}
O pai cria uma matriz e a passa para os filhos por referência. Eles podem alterar a matriz adicionando elementos a ela. O pai então o adiciona à matriz de renderização.