Le blog de Fabien
Supprimer une constante en PHP, voilà une idée bien bizarre ! Effectivement, si l’on veut modifier ou supprimer une constante alors il ne devrait pas s’agir d’une constante mais d’une variable. Je suis tout à fait d’accord sur ce point !
Alors pourquoi vouloir supprimer une constante ? J’ai pris l’habitude d’écrire des tests unitaires pour les logiciels que je développe. Cela me permet de m’assurer qu’ils fonctionnent correctement et de faire évoluer le logiciel de façon plus ou moins importante sans “casser” le reste de l’application. Le problème c’est que j’ai un fichier qui défini une constante. Pour les tests sur ce fichier, je définis une constante à une valeur particulière mais dans les autres fichiers de tests cette constante doit reprendre sa valeur normale… L’idée ici est donc de supprimer la constante à la fin du fichier de tests pour permettre de la redéfinir dans les autres.
En PHP, de base, il n’est pas possible de supprimer une constante et c’est tout à fait compréhensible. Toutefois, il existe une extension PECL qui permet, entre autre, de modifier et de supprimer une constante : Runkit. L’extension n’est quasiment jamais disponible sur un serveur web mais peu importe, je lance les tests en local donc pas de problème.
Runkit propose une fonction pour supprimer une constante : runkit_constant_remove et une fonction pour modifier une constante : runkit_constant_redefine.
Bon, il me faut maintenant réussir à compiler cette extension sur Mac OS X Leopard et ça ne semble pas gagné. J’ai un beau “Unable to load dynamic library ‘./runkit.so’ - (null) in Unknown on line 0″ dans le fichier de log d’Apache après la compilation et l’installation de Runkit. Si quelqu’un a réussi à faire fonctionner l’extension sur Mac OS X, qu’il n’hésite pas à poster sa solution en commentaire
Blogafab.com est le blog personnel de Fabien. Il est consacré au développement web, Mac OS X, les jeux vidéos et les séries tv.
Fabien est actuellement étudiant en première de master informatique à l'université de Valenciennes. A ses heures perdues, il s'occupe de Invision Board France et son propre site Smallville Site Web.
Laisser un commentaire