|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 428 ![]() |
Lorsqu'on utilise des constantes comme valeur par défaut d'une fonction on est tenté de faire
Code :
function maFonction($param = MA_CONSTANTE) {... une solution est de garantir la définition de la CONSTANTE si elle n'existe pas. Code :
En effet en suposant que la constate soit un paramètre de configuration. il y a des chance pour que le fichier contenant la définition des paramètre et celui contenant la fonction ne soient pas les mêmes. Si le fichier contenant la fonction est chargé avant celui contenant la configuration MA_CONSTANTE ne sera pas correctement configuré elle aura toujours la valeur contenue dans le fichier de la fonction. voici une petite fonction pour fixer le paramètre: Code :
Code :
|
||||||
|
|
00
|
|
|
#2 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Pour rappel, changer le mode d'erreur pendant le développement permet d'identifier ce genre de détails. PHP permet de faire du code propre aussi bien que du code très laid, charge à nous (les développeurs) de produire le code adéquat.
Ta méthode est intéressante sous certaines conditions, mais je ne recommande pas de l'utiliser pour des applications en production. Il faut pouvoir compter sur la présence des constantes au moment opportun, sans à avoir à vérifier leur état. Depuis PHP5, le mode d'erreur recommandé lors du développement est :
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() ![]() Urbaniste Inscription : juillet 2004 Messages : 1 428 ![]() |
Oui E_STRICT est la bonne solution
mais malheureusement de nombreuse entreprises sont encore sous php4 qui ne le supporte pas ce code ne change absolument rien en production si ton paramètre doit avoir une valeur par défaut défini par une constant (de conf) et que celle-ci n'est pas définie tu va planter à l'exécution donc vaut mieux identifier l'erreur là où elle se trouve plutôt que de laisser une portion de code se vautrer sans qu'on puisse facilement retrouver l'erreur en php 5 j'aurais mis un trow quant à savoir si ça va arrêter ou pas l'appli c'est comme en php5 si on veut que l'appli ne plante pas il faut gérer les erreur à l'appel. try catch en php5 et error handler en php4 a+jyt |
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Les "entreprises" qui n'ont pas encore migré devraient sincèrement se mettre au travail tout de suite, car dès l'année prochaine PHP4 ne sera plus débogué par le PHP Group... PHP 4 est mort, tandis que PHP 5 est presque en train de passer le relai à son successeur.
Je ne comprends pas pourquoi on continue de développer en PHP 4, c'est une mauvaise idée, au contraire il faut porter nos efforts sur le port des applis existantes vers PHP 5.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com