PHP : Gestão de erros
Voltamos à programação em PHP. Tenho estado a desenvolver uma framework para ajudar-me em trabalhos na linguagem de programação de PHP. Na semana passada melhorei a gestão de erros. Quando ocorre um erro, invoco uma função, que chamei error_add, que armazena informação sobre o erro em dois vectores.
O vector errors é uma pilha, com um identificador que associa a outro vector de associações com os dados sobre os erros. Isso permite apresentar um texto de acordo com a língua dos utilizadores (por exemplo, portuguesa) posteriormente, quando as entradas forem processadas e estiver pronto para a geração de XHTML (ou XML), e apontar campos inválidos nos formulários.
Os identificadores separam as suas categorias dos erros por dois pontos. Em error_categories estão essas categorias, que contém sub-categorias até a índices de erros. Isso permite filtrar os erros por categorias.
Eis o código (no original, a função está num ficheiro inc/util.php e as variáveis globais em inc/global.php):
<?php
/* Errors */
$errors = array();
$error_categories = array();
/* Add error to errors pile
* @id : error id
* @data : error parameters
*/
function error_add( $id, $data = array() )
{
global $errors;
global $error_categories;
//$data['_err_at'] = microtime(true);
$error_n = array_push( $errors, array($id => $data) );
/* add error categories */
$categories = explode( ':', $id );
$error_tree = &$error_categories;
foreach($categories as $category)
{
if( !array_key_exists($category, $error_tree) )
{
$error_tree[$category] = array();
} // if
$error_tree = &$error_tree[$category];
} // foreach
// - associate error id
if( is_array($error_tree) )
{
array_push( $error_tree, $error_n );
} // if
} // error_add
?>




Comentários Recentes
http://www.geocitie
eu respeito muito seu
Concordo plenamente com o comentário acima,