Esta classe permite usar eventos em PHP. Anexam-se as funções a determinado evento, e estas serão executadas assim que o evento for chamado. Podem fazer o download dela aqui.
<?php //Inclui a classe require("Events.php"); function function_1 (){ echo "Function_1 executada"; } //Adiciona uma função a um evento. Não é preciso declarar o evento, pois se ele não existir a classe cria-o automaticamente. Events::Attach("system.core.echo", "function_1"); echo "1"; //Corre todos os eventos anexados ao evento "system.core.echo" Events::Run("system.core.echo"); ?>
Não é preciso. Basta usar a classe estática Events. :)
As configurações são bastante simples. Existem três funções, uma para alterar uma configuração, uma para verificar se a variável de configuração existe e outra para ler o valor actual.
Esta função retorna true caso a variável de configuração exista e false caso não exista.
Esta função retorna o valor actual de uma variável de configuração.
Se a variável de configuração não existir, a função retorna false.
Esta função altera o valor de uma variável de configuração.
Se a variável de configuração não existir, a função retorna false.
Tipo: Boolean
Dependências: Nenhuma
Se esta variável estiver a true, ao executar a função Run() para um determinado evento, e função vai também procurar funções definidas pelo utilizador que obedeçam à seguinte estrutura:
//A parte nome_da_funcao é completamente personalizavel. function nome_da_funcao_handles_nome_do_evento(){}
Tipo: Boolean
Dependências: Variável Auto_run = true
Se estiver a true, para além de executar as funções encontradas, também as coloca na lista do array.
Esta função anexa uma função a um evento.
A função retorna true caso a operação tenha corrido com êxito, e false caso tenha ocorrido algum erro.
<?php require("Events.php"); function function_1 (){ echo "Function_1" } function function_4 (){ echo "Function_4"; } //Este exemplo vai funcionar Events::Attach("system.core.example", "function_1"); //Este exemplo não vai funcionar porque a fiunção já foi anexada ao evento Events::Attach("system.core.example", "function_1"); //Este exemplo vai funcionar pois o evento declarado é outro Events::Attach("system.core.teste", "function_1"); //Este exemplo vai funcionar Events::Attach("system.core.example", "function_2"); //Este exemplo não vai anexar a função e vai retornar false Events::Attach("system.core.example", "function_2", true); //Este exemplo apena vai anexar a function_4, no entanto vai retornar false Events::Attach("system.core.example", array("function_2", "function_3", "function_4", true); //Ao chamar a função Run, ele vai apenas executar a function_1, e deixar a function_2 do segundo exemplo de lado. Events::Run("system.core.echo"); ?>
Esta função vai desanexar uma função ou mesmo remover um evento.
A função retorna true caso execute com êxito e false caso ocorra algum erro.
<?php require("Events.php"); function function_1 (){ echo "Function_1" } function function_2 (){ echo "Function_2"; } Events::Attach("system.core.example", "function_1"); Events::Attach("system.core.example", "function_2"); Events::Attach("system.core.example", "function_3"); Events::Detach("system.core.example", "function_2"); //Ao chamar a função Run, ele vai apenas executar a function_1, e deixar a function_3 de lado. Events::Run("system.core.echo"); //Com esta função ele vai eliminar o evento "system.core.example" Events::Detach("system.core.example"); //Ao chamar a função Run desta vez, ele não vai executar nenhuma função e vai retornar false, pois o evento não existe (foi apagado) Events::Run("system.core.echo"); ?>
Esta função vai executar todas as funções associadas a um determinado evento.
A função retorna true caso execute com êxito e false caso ocorra algum erro.
Esta função mostra ou retorna os actuais eventos e as respectivas funções anexadas.
A função retorna true caso o argumento $output esteja igual a true e tenha sido executada com êxito, retorna uma string caso o argumento $output esteja igual a false e tenha sido executada com êxito, ou retorna false em caso de erro.
<?php require("Events.php"); function function_1 (){ echo "Function_1" } function function_2 (){ echo "Function_2"; } Events::Attach("system.core.example", "function_1"); Events::Attach("system.core.example", "function_2"); Events::Attach("system.core.example", "function_3"); Events::Attach("system.core.teste", "function_1"); //Esta função irá imprimir as quatro funções. Events::Show(); //Esta função irá imprimir apenas uma função. Events::Show("system.core.teste"); //Neste caso a variável $content irá ficar com a informação de apenas três funções $content = Events::Show("system.core.example", false); //Neste caso, a função vai retornar false (erro) pois o evento não existe $content = Events::Show("system.core.new_event"); ?>
Esta função verifica so um determinado evento existe, ou se uma determinada função lhe está anexada.
<?php require("Events.php"); Events::Attach("some_event", "some_function"); Events::Attach("some_event", "other_function"); //Como o evento existe, vai retornar true echo Events::Exist("some_event"); //Como o evento existe, e a função está anexada a ele, vai retornar true echo Events::Exist("some_event", "some_function"); //Como o evento não existe, e apesar de a função existir, ele vai retornar false echo Events::Exist("other_event", "some_function"); //Devido à função não estar anexada ao evento, ele vai retornar false echo Events::Exist("some_event", "function_1"); ?>
A função getList() retorna o array com os eventos e as respectivas funções anexadas.
As funções Disable()/Enable() desabilitam/habilitam, respectivamente, o funcionamento da classe.
<?php require("Events.php"); //Esta função vai funcionar Events::Attach("some_event", "some_function"); Events::Disable(); //Esta função não vai funcionar Events::Run("some_event"); //Esta função também não vai funcionar Events::Attach("some_event", "other_function"); Events::Enable(); //Esta função vai retornar false porque a função não está anexada, e portanto, não vai fazer nada Events::Detach("some_event", "other_function"); //Esta função apenas vai correr a função "some_function" Events::Run("some_event"); ?>