Caminho no Gestor bibliotecas/hooks.php
Carregada sempre pelo config.php. O funcionamento (declaração em JSON, tabela hooks, ordem e catálogo de eventos) está em Hooks: actions e filters. Esta página é só a referência da API.
Disparar
| Função | |
|---|---|
hook_do_action($namespace, $evento, ...$args) |
Executa as actions. Sem retorno |
hook_apply_filters($namespace, $evento, $valor, ...$args) |
Passa $valor por cada filter e devolve o resultado |
hook_has_actions($namespace, $evento) / hook_has_filters(…) |
true se há algo registrado (inclusive no namespace *) |
Todas delegam ao HookManager (singleton), que carrega do banco na primeira consulta de cada namespace.evento e memoriza por requisição.
Registrar (uso do pipeline)
| Função | |
|---|---|
hooks_registrar_modulo($modulo, $plugin, $config) |
Apaga os hooks do módulo e reinsere os da seção hooks do JSON |
hooks_registrar_projeto() |
O mesmo para project/hooks/hooks.json (registros com projeto=1) |
hooks_inserir_callbacks(…) |
Normaliza as três formas de callback (texto, objeto, lista) e grava |
Não chame essas funções numa requisição comum: elas reescrevem a tabela. Quem as chama é atualizacoes_hooks_sincronizar(), no fim do atualizador de banco e do deploy.
Funções
Gerado a partir de gestor/bibliotecas/hooks.php · 7 funções
hook_do_action
ver no código · linha 363 ↗hook_do_action(string $namespace, string $evento, mixed ...$args): voidExecuta todos os callbacks de action para um namespace+evento.
Parâmetros
$namespacestring- Namespace alvo (ex: 'paginas', 'global')
$eventostring- Evento específico (ex: 'editar', 'adicionar')
$argsmixed- Argumentos passados para os callbacks
Retorno
hook_apply_filters
ver no código · linha 376 ↗hook_apply_filters(string $namespace, string $evento, mixed $value, mixed ...$args): mixedAplica todos os filters para um namespace+evento, retornando o valor transformado.
Parâmetros
$namespacestring- Namespace alvo
$eventostring- Evento específico
$valuemixed- Valor a ser filtrado
$argsmixed- Argumentos adicionais
Retorno
hook_has_actions
ver no código · linha 383 ↗hook_has_actions(string $namespace, string $evento): boolVerifica se existem actions registradas para um namespace+evento.
Parâmetros
$namespacestring$eventostring
Retorno
hook_has_filters
ver no código · linha 390 ↗hook_has_filters(string $namespace, string $evento): boolVerifica se existem filters registrados para um namespace+evento.
Parâmetros
$namespacestring$eventostring
Retorno
hooks_registrar_modulo
ver no código · linha 407 ↗hooks_registrar_modulo(string $modulo, ?string $plugin, array $hooks_config): intRegistra/atualiza os hooks de um módulo na tabela hooks. Remove hooks antigos do módulo que não estão mais no JSON. Fonte de verdade: arquivo JSON do módulo.
Parâmetros
$modulostring- ID do módulo
$plugin?string- ID do plugin (null se não for de plugin)
$hooks_configarray- Seção "hooks" do JSON do módulo
Retorno
hooks_registrar_projeto
ver no código · linha 440 ↗hooks_registrar_projeto(): intRegistra/atualiza os hooks do projeto (project/hooks/hooks.json). Remove hooks de projeto antigos e re-insere os do JSON atual.
Retorno
hooks_inserir_callbacks
ver no código · linha 493 ↗hooks_inserir_callbacks(?string $modulo, ?string $plugin, string $namespace, string $evento, mixed $callbackDef, string $tipo, ?int $projeto): intInsere callback(s) na tabela hooks. Suporta: string simples, array de strings, ou objeto {callback, prioridade, habilitado}.
Parâmetros
$modulo?string$plugin?string$namespacestring$eventostring$callbackDefmixed- Definição do callback (string, array, ou assoc array)
$tipostring- 'action' ou 'filter'
$projeto?int- 1 se de projeto, null se de módulo
Retorno