Ferramentas de Utilizador

Ferramentas de Site


dev_web:php:php-ses_basicos

PHP SimpleEventsSystem

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.

Exemplo

<?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");
 
?>

Instanciar

Não é preciso. Basta usar a classe estática Events. :)

Configurações

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.

confExists

Esta função retorna true caso a variável de configuração exista e false caso não exista.

boolean confExists(string $var_name)
  • var_name - O nome da variável de configuração a verificar se existe.

getConf

Esta função retorna o valor actual de uma variável de configuração.

* getConf(string $var_name)
  • var_name - O nome da variável de uma variável de configuração para obter

Se a variável de configuração não existir, a função retorna false.

setConf

Esta função altera o valor de uma variável de configuração.

* setConf(string $var_name, string $var_value)
  • var_name - O nome da variável de configuração a obter
  • var_value - O valor a colocar na variável de configuração

Se a variável de configuração não existir, a função retorna false.

Lisa de Variáveis de Configuração

Auto_run

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(){}

Auto_index

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.

API

Attach

Esta função anexa uma função a um evento.

boolean Attach (string $event_name, string|array $function_name, [boolean $verify_function = false])
  • $event_name - O nome do evento a que se quer anexar a função. Se o evento não existir, a class criá-lo-à automáticamente.
  • $function_name - O nome da função a anexar. Pode ser um array unidimensional.
  • $verify_function - Se estiver a true, apenas deixa adicionar funções que já estejam declaradas. Se estiver a false, deixa passar todas. Se no momento em que o evento correr, a função ainda não estiver declarada, a classe passa-a e não a executa.

A função retorna true caso a operação tenha corrido com êxito, e false caso tenha ocorrido algum erro.

Possibilidades de Erro:
  • Os argumentos não estarem devidamente preenchidos
  • A opção de verificar a função estar activada e a função não existir
  • O função já estar anexada ao mesmo evento.

Exemplo

<?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");
?>

Detach

Esta função vai desanexar uma função ou mesmo remover um evento.

boolean Detach (string $event_name, [string|array $function_name = ""])
  • $string_name - O nome do evento a apagar.
  • $function_name - O nome da função a desanexar. Se não for declarado, a função apaga todo o evento. Pode ser apenas uma string ou um array com uma lista de funções a desanexar.

A função retorna true caso execute com êxito e false caso ocorra algum erro.

Possibilidades de Erro:
  • O argumento $event_name não estar preenchido.
  • O evento não existir.

Exemplo

<?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");
 
?>

Run

Esta função vai executar todas as funções associadas a um determinado evento.

boolean Run(string $event_name, [array $paramsList = ""])
  • $event_name - O nome do evento a executar.
  • $paramsList - Um array com parâmetros a passar para as funções.
Tem de ter cuidado ao usar os parâmetros, pois se uma função não tiver os parâmetros correspondentes, o PHP dará erro!

A função retorna true caso execute com êxito e false caso ocorra algum erro.

Possibilidades de erro:
  • Os parâmetros não estarem devidamente preenchidos
  • O evento declarado não existir.
Funções que não existam, mas estejam anexadas ao evento não dão origem a erros.

Show

Esta função mostra ou retorna os actuais eventos e as respectivas funções anexadas.

boolean|string Show ([string $event_name = "", [string $output]])
  • $event_name - Nome do evento a mostrar. Se não for declarado, ou for deixado em branco, a função mostra todas as funções de todos os eventos.
  • $output - Se for definido como true, a função imprime automaticamente para o ecrã. Se estiver definida como false retorna uma string.

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.

Possibilidades de erro:
  • O evento declarado não existir.

Exemplo

<?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");
?>

Exist

Esta função verifica so um determinado evento existe, ou se uma determinada função lhe está anexada.

boolean Exist(string $event_name, [string $function_name = ""])
  • $event_name - O nome do evento a verificar se existe.
  • $function_name - O nome da função a verificar se está anexada ao evento.

A função retorna true se o evento existir, e se a função estiver declarada a ele. Retorna false se o evento não existir ou a função não estiver declarada a ele.

Exemplo

<?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");
?>

getList

A função getList() retorna o array com os eventos e as respectivas funções anexadas.

Devem-se sempre usar as funções disponibilizadas pela classe para realizar acções que tenham a haver com o array, tais como verificar se a função existe, pois a sua estrutura pode mudar a qualquer versão e a sua aplicação pode deixar de funcionar.

Disable/Enable

As funções Disable()/Enable() desabilitam/habilitam, respectivamente, o funcionamento da classe.

Algumas funções não são afectada por esta funcionalidade. Essas funções são:
  • Exist()
  • getList()
  • getlastError()
  • clearErrorsLog()

Exemplo

<?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");
?>
dev_web/php/php-ses_basicos.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)