O que são Hooks?

Este post faz parte de um conjunto de artigos organizados em um Curso de WordPress. Acesse o link para outros conteúdos.

Este post é uma introdução para o artigo Hooks no WordPress: Actions e Filters 😉

Hooking, do inglês enganchar, é um conceito que permite modificar o comportamento de um programa. É a chance que um código te dá para alterar o comportamento original de alguma coisa sem alterar seu código.

O trem é o fluxo de processamento normal. Em certos lugares ele coleta o que outros módulos tem para oferecer.

O trem é o fluxo de processamento normal. Em certos lugares ele coleta o que outros módulos tem para oferecer.

Uma aplicação prática

Imagine que você está utilizando um CMS que não é seu, que gostaria que um superadministrador fosse avisado por e-mail toda vez que um post novo fosse publicado e que este comportamento não é padrão da ferramenta. Surgiriam alguns caminhos a seguir:

  • Alterar o código-fonte do CMS. Péssima ideia, afinal na próxima atualização da ferramenta você enfrentará o dilema de perder sua alteração ou não poder manter tudo atualizado;
  • Criar seu próprio CMS. Outra ideia ruim, afinal você não tem tempo (nem braços) o suficiente para bolar coisas novas ou sequer manter o que construir (além de estar tentando reinventar a roda);
  • Investigar a possibilidade de utilizar um hook, isto é, verificar se o CMS procura em módulos/plugins externos por funções de determinado nome a serem executadas no momento desejado, neste caso o de publicação de novos posts.

O aspecto prático de utilização dos hooks varia muito de ferramenta para ferramenta. A construção de módulos do drupal, por exemplo, é toda baseada em hooks. Quando vai salvar um post, exibir um bloco, exibir ajuda, deletar um comentário, em todas estas ocasiões o que o drupal faz é verificar se os módulos disponibilizam funções com determinado nome para acrescentar ou retirar alguma coisa do que será feito.

Principal vantagem

Como eu disse aí em cima: a principal vantagem dos hooks é não alterar o código original. Em todos os manuais de boas práticas de todas as ferramentas open source que tem atualizações periódicas o mantra que se repete é não altere o core. Além de impossibilitar atualizações, quem vier depois para fazer manutenção não saberá da mudança e quem fica mal falado com isso é você e não a ferramenta.

Disponibilizando hooks

Ok, é um cenário incomum. Utilizamos hooks muito mais do que disponibilizamos, mas se você estiver construindo algo grande, que será utilizado por equipes diferentes com necessidades (mesmo que levemente) diferentes pense em dar a deixa para outros fazerem alguma coisa. Antes de salvar um dado no banco, não custa nada deixar que outros o alterem para suas necessidades. Vai exibir alguma coisa na tela? Idem. Na maioria dos casos o investimento de tempo é mínimo e o ganho para quem está do outro lado é enorme.

Comente aí o que achou do artigo e confira a aplicação dos hooks no WordPress.

Tags:

Comentários

  • Pingback: Hooks no WordPress: Actions e Filters | Felipe Elia()

  • Danillo Guimarães de Oliveira

    Muito bom seu artigo… eu quebrei a cabeça tentando entender e supondo uma série de coisas até me deparar com seu artigo.

  • Felipe Elia

    Obrigado Danillo, que bom que gostou! 🙂

  • Lome Card

    Muito obrigado pelo artigo, ajudou bastante.