Eu continuo encontrando esse termo ganchos em vários artigos de programação. No entanto, não entendo o que são e como podem ser usados. Então, eu só queria saber qual é o conceito de ganchos; se alguém pudesse me vincular a alguns exemplos, particularmente no contexto de desenvolvimento web, seria ótimo.
web-development
python
Rasmus
fonte
fonte
Respostas:
Minha resposta diz respeito ao WordPress, que está escrito em PHP, mas essa é uma mecânica geral de desenvolvimento, portanto não deve importar, apesar do fato de você ter colocado 'python' no título da sua pergunta.
Um bom exemplo de uso de ganchos, coincidentemente no desenvolvimento da Web, são os ganchos do WordPress .
Eles são nomeados de maneira apropriada, pois permitem uma maneira de "se conectar" a certos pontos da execução de um programa.
Por exemplo, o wp_head é uma 'ação' emitida quando um tema do WordPress está sendo renderizado e é na parte em que ele renderiza a parte que está dentro das
<head>
tags. Digamos que você queira escrever um plug-in que exija uma folha de estilo, script ou algo que normalmente entraria nessas tags. Você pode 'conectar-se' a essa ação definindo uma função a ser chamada quando essa ação for emitida. Algo como:your_function()
pode ser algo tão simples como:Agora, quando o WordPress emitir essa ação, fazendo algo como
do_action('wp_head');
, ele verá queyour_function()
foi 'enganchado' nessa ação, portanto chamará essa função ( e passará a ela quaisquer argumentos, se necessário), conforme definido na documentação de qualquer gancho específico )Longa história: permite adicionar funcionalidades adicionais em pontos específicos da execução de um programa, conectando-os a esses pontos, na maioria dos casos, atribuindo um retorno de chamada de função.
fonte
Dependendo do histórico da pessoa que pergunta, às vezes a resposta a essa pergunta pode ser tão simples quanto ganchos geralmente são outra palavra para um manipulador de eventos, para o qual Blaenk deu uma excelente explicação.
Também existem usos dessa frase quando você injeta um evento ou código em um processo que, caso contrário, não possui eventos como toupeiras, por exemplo.
fonte