Salut.

Je recherche désespérément comment personnaliser les pages d'erreurs en production avec CakePHP2.0.

Depuis la release 2.0 on n'utilise plus le composant des erreurs mais des exceptions php. On lève ainsi des exceptions et on peut même préciser un code d'erreur http. Plutôt génial!

En mode dév, on a 'debug' à 1 ou 2, on utilise alors les vues de /view/Errors pour personnaliser les pages. Ex : si on lève ErreurPersoException('message', 404) on crée /View/Errors/erreur_perso.ctp. On affiche ce que l'on veux... C'est cool.

Problème : en prod, avec 'debug' à 0, tous ces messages custom sont enregistrés dans /tmp/logs/error.log et une page 'Not Found' s'affiche. Je ne comprend pas comment modifier cette xxxx de page!

Des retours d'expérience svp? Merci d'avance.

7 réponses


Euh ici sur Grafikart les pages sont bien les 404 ça devrait marcher !

nvergnes
Auteur

C'est pas le code qui pose problème mais plutôt le message :

Not Found
Error: The requested address '/cakephp-2.0.3/fr/blog' was not found on this server.

que je n'arrive pas à personnaliser quand debug est à 0.

En prod, mes vues View/Errors servent à enregistrer des messages customs dans les logs.

Je ne comprend pas vraiment ton problème, tu peux expliquer s'il te plait ?

nvergnes
Auteur

Mon problème est tout simple, comment personnaliser le message qui s'affiche sur ce lien erroné par exemple : http://www.grafikart.fr/blog/mail-local-wam-111xxxx9

J'ai crée des vues dédiées dans View/Errors. En mode 'debug' à 1 et 2, ces vues s'affichent et me permettent d'indiquer : "page introuvable", "mode maintenance", etc.

Quand 'debug' est à 0 (ce qui est requis en production), mes messages explicités ci-dessus s'affichent uniquement dans les logs. L'affichage est une page qui n'a rien à voir avec mes vues custom : Not Found Error: The requested address '/cakephp-2.0.3/fr/blog' was not found on this server.

Je sais pas si c'est plus clair...

Oui je comprend ton problème, mais c'est spécifié dans le fichier core.php quand on met 0, il n'y a rien qui s'affiche

nvergnes
Auteur

Oui je trouve cette logique bizarre. Ça aurait pu être bien d'avoir 2 niveaux de messages (pour debug à 0 ou debug > 0).

Que veux tu les choses sont faites ainsi !!