-
Notifications
You must be signed in to change notification settings - Fork 7.6k
iHook
[b]Lang: EN[/b]
iHook allows to create points into your code that can be called by an external function. This allows you to change the behavior of the application, without having to change the original code.
[b]Lang: PT_BR[/b]
o iHook permite que ao desenvolver uma aplicação, você insira pontos onde o código pode ser alterado por uma função externa. Isso permite que você mude o comportamento da aplicação, sem precisar alterar o código original.
Este padrão permite tanto manipular variáveis dentro do código como também servir como um "gatilho" para executar códigos externos.
Seu funcionamento foi baseado no Wordpress, que oferece ACTIONS e FILTERS para que o desenvolvedor possa criar plugins sem precisar alterar os arquivos originais do próprio Wordpress.
No iHook porém, unimos as duas características (ACTIONS e FILTERS) em uma única e simples função que pode tanto alterar variáveis como também simplesmente executar um código.
Use o iHook ao desenvolver novas aplicações para seu sistema. Por exemplo: Ao criar um controller, você pode criar um iHook no início da chamada do controller sem nenhuma pretensão inicial. Se sua aplicação for usada para diversos tipos de clientes e algum cliente precisar de uma personalização, você não precisará alterar o código original (o que permite manutenção e evolução contínua). Basta então criar uma LIBRARY que irá executar determinado código no início do controller.
O ponto em que seu iHook será acionada é determinado por você no momento em que você cria seus controllers, libraries, helpers, models, etc.
Por ser uma Library, o iHook deve ser carregado sempre que desejar usá-lo, chamando:
$this->load->library('Ihook');
Para criar um ponto de iHook, use:
$this->ihook->create('welcome');
Neste caso, nosso ihook chama-se welcome.
Sempre que desejarmos executar uma ação neste ponto, basta usarmos:
$this->ihook->execute('welcome', 'meuprimeiroihook', 'testando');
O iHook irá carregar automaticamente a função TESTANDO da Library MEUPRIMEIROHOOK que você terá criado dentro da pasta libraries.
Além de executar uma ação, você também pode usar o iHook para alterar variáveis internas de seu código. Para isto, ao criar um iHook informando um parâmetro de entrada:
$titulo = "Titulo Antes do iHook";
$titulo = $this->ihook->create('welcome', $titulo);
Neste exemplo, a variável $titulo será enviada ao seu ihook, que poderá alterá-la e então devolver a variável alterada ao código original para continuar a execução.
Estamos usando o iHook em no [url http://php.valeouro.com.br]PHP Produtivo[/url]