Erros

Whoops: error handling personalizado no CodeIgniter

Nesse tutorial você aprenderá a utilizar a library Whoops para personalizar o visual do tratamento de erros no CodeIgniter.

É uma verdade que a exibição dos erros no CodeIgniter não é das mais bonitas.

Tela de erro nativa do CodeIgniter

Mas a library Whoops pode mudar esse visual através de um processo de integração bastante simples.

Tela de erro com a library Whoops

Integrando a library Whoops

Para integrar a library Whoops você precisará utilizar o Composer para fazer a instalação dela como uma dependência.

Com o seu projeto iniciado, vá até o arquivo composer.json e atualize-o conforme o código a seguir:

A linha 15 é a reponsável por instalar a library, e o processo de instalação ocorrerá quando você executar o comando abaixo no terminal:

composer update

Com a dependência instalada é hora de configurar o CodeIgniter para responder aos erros usando a library Whoops.

Faremos isso usando os hooks do CodeIgniter. Se você não conhece os hooks, veja nosso post sobre o assunto.

Hooks: Extendendo o framework

Configurando o hook

A primeira a coisa a se fazer no processo de configuração de um hook é sua ativação.

Acesse o arquivo application/config/config.php e altere o valor de $config[‘enable_hooks’] para TRUE.

Feito isso, crie um arquivo chamado WhoopsErrorHandler.php dentro application/hooks. Nesse arquivo colocaremos a instrução para que a library Whoops seja utilizada na exibição de erros.

No arquivo criado você irá adicionar uma classe chamada WhoopsErrorHandler com um método chamado WhoopsConfig. Esse método executará a codificação necessária para que library passe a responder de forma nativa aos erros que ocorrerem.

Veja no código-fonte a seguir como ficará a implementação:

Para finalizar, abra o arquivo application/config/hooks.php. Vamos configurar nele uma instrução para que o hook WhoopsErrorHandler seja executado no pre_system, ou seja, antes do carregamento completo do sistema.

Testando a implementação

Para testar a implementação, vá até o arquivo application/controllers/Welcome.php e substitua o carregamento da view welcome_message por uma chamada a uma função inexistente, como por exemplo funcaoQueNaoExiste().

Ao abrir o endereço da sua aplicação no browser, verá a tela de erro como a da imagem a seguir:

Tela de erro com a library Whoops

Observação

É importante ficar ciente de que essa implementação não vai tratar erros específicos da framework, como por exemplo a chamada à uma view cujo arquivo não existe no diretório application/views.

Tela de erro da framework

Até a próxima!!!