O que são os Hooks do Drupal?

Em: Drupal

17 jan 2009

Os hooks (ganchos em inglês) são funções PHP pré-definidas, criadas para promover a integração dos módulos com o núcleo do sistema.

O programador, ao criar um novo módulo, extenderá essas funções, respeitando apenas os parâmetros a serem recebidos e o valor retornado, ficando a implementação propriamente dita totalmente adequável às suas necessidades.Outras funções poderão ser definidas no módulo para ajudá-lo na implementação dos hooks ou executar as suas ações específicas.

Na api do drupal você encontra uma lista completa de todos os hooks disponíveis com suas respectivas descrições.

A implementação dos hooks inicia-se no uso correto da nomenclatura, que se dá substituindo a palavra hook no nome da função pelo nome do módulo.

Por exemplo, para implementar o hook_menu() em um módulo chamado notícias, vá até a pasta deste módulo, abra o arquivo noticias.module e crie uma função chamada noticias_menu(), esse hook é responsável por criar ítens de menu e chamadas de página através de url (não detalharemos o hook_menu() para não fugirmos do escopo desta matéria).

O código desse exemplo ficaria assim:

<?php
/**
 * Implementação do hook_menu
 */
function noticias_menu() {
  $items = array();
 
  // Cria um ítem de menu
  $items['noticias'] = array(
    'title' => 'Noticias',
    'page callback' => 'noticias_page',
    'access arguments' => array('access content'),
    'type' => MENU_NORMAL_ITEM,
  );
  // Cria uma url para uma página
  $items['noticias/lista'] = array(
    'title' => t('Notícias'),
    'page callback' => 'noticias_list',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );
 
  return $items;
}
?>

Com o uso do hook_menu(), o drupal irá incluir os links do módulos de notícias na geração do menu do sistema.

Qualquer dúvida ou sugestão, é só comentar!!

Comentário

Sobre o autor

Rubens Gadelha é formado em Webdesign & Webmaster (hoje Desenvolvimento de Web e Comércio Eletrônico) pela Universidade Estadual Vale do Acaraú - UVA e dedica algumas horas do dia à boa leitura e autodidática.

Atualmente trabalha como Programador Web, focado na linguagem PHP e no Zend Framework, bibliotecas de javascript como JQuery e o uso de CMS’s como Drupal. Os bancos de dados MySQL e PostGres também fazem parte do seu dia-a-dia.

Dedica suas horas vagas ao aprofundamento na linguagem Java

Categorias

Arquivos