CakePHP Brasil

20 maio 2008

Personalizando páginas de erro

Arquivado em: CakePHP — Tags:, , — Juan Basso @ 10:24 pm

Muitos já devem ter visto as clássicas frases: “Missing Controller”, “Missing Model”, e por aí vai. Você sabe o que significa, mas será que seus clientes ou usuários sabem o que isso quer dizer? E será que sabem que isso é uma mensagem de erro?

Bem, para alterar essas telas de erro, basta criar alguns arquivos de view e colocá-los na pasta app\views\errors. Cada um tem um nome específico, são eles:

  • error404.ctp – Quando não é encontrado algum arquivo ou é lançado propositalmente um erro de não encontrado por um controller;
  • missing_controller.ctp – Quando está faltando um controller;
  • missing_action.ctp – Você digitou no navegador uma url que exista o controller, mas não a action nele. Exemplo: http://site/usuarios/acesso. No caso existe o controller UsuariosController, mas ele não tenha o método acesso;
  • private_action.ctp – Quando há o método no seu controller, mas ele é privado. Isso pode ser de duas maneiras, ou ele é privado pelo PHP 5 ou ele começa com _ ou __;
  • missing_component_file.ctp – Quando um controller tentou usar um component e este não exista fisicamente;
  • missing_component_class.ctp – Quando o arquivo de component existe, mas não contém a classe do component. Exemplo: você incluiu no seu controller o component‘Xxx’, existe o arquivo app\controllers\components\xxx.php, mas dentro dele há uma outra classe ou está vazio;
  • missing_view.ctp – Quando está faltando um arquivo de view (correspondente ao action do controller);
  • missing_layout.ctp – Quando está faltando um layout escolhido (incluindo o padrão);
  • missing_helper_file.ctp – Mesmo caso da falta de arquivo de component, mas para helper;
  • missing_helper_class.ctp – Mesmo caso da falta de classe de component, mas para helper;
  • missing_model.ctp – Faltando arquivo ou classe de model;
  • missing_table.ctp – Quando uma tabela não foi encontrada no banco de dados;
  • missing_connection.ctp – Quando não foi possível conectar no banco de dados;
  • missing_scaffolddb.ctp – Quando um scaffolding falha a conexão com banco de dados;
  • scaffold_error.ctp – Quando o método _scaffoldError não foi encontrado no seu controller.

Lembrando que todos os erros vem dentro do layout padrão.

Abraços e espero que não ocorram erros nos seus programas. :-)

Powered by WordPress