Question

Quelles sont les meilleures pratiques pour l'utilisation de la magie Constantes de PHP, comme __LINE__, __FILE__, __FUNCTION__, __CLASS__ et __METHOD__?

Par exemple, je utilisation __LINE__ et __CLASS__ pour localiser l'erreur SQL comme ceci:

$result = mysql_query($query)
or die("Error SQL line ".__LINE__ ." class ".__CLASS__." : ".mysql_error());

Est-ce une pratique acceptable?

Était-ce utile?

La solution

La pratique vous montrer a deux défauts:

  • Vous ne montrez pas le fichier l'erreur se produit dans - vous devriez avoir un très structure de fichiers stricte qui associe des classes de fichiers 1: 1 pour que cela soit utile

  • __CLASS__ vous montrer le mauvais résultat si l'erreur se produit dans une classe héritée. Utilisez get_class($this) pour obtenir la classe actuelle réelle.

Autre que cela, l'utilisation de ces constantes est parfaitement acceptable. Notez que

  • __FUNCTION__ et __CLASS__ ont été ajoutés en PHP 4.3

  • __METHOD__ est disponible depuis PHP 5.0.0

  • __DIR__ et __NAMESPACE__ sont disponibles depuis PHP 5.3.

docs

Autres conseils

Le but de ces constantes est le débogage et la journalisation. C'est exactement ce que vous faites.

__FILE__ peut également être utilisé pour les chemins de fichiers relatifs (par exemple dirname(__FILE__)).

Le seul conseil que je peux donner est que toutes les constantes magiques sont définies. Ainsi, en cas de doute, utilisez if(defined('__MAGIC_CONSTANT__'))

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top