par
naholyr » 16 juin 2007, 18:46
J'ai un peu la même opinion que toi, et j'ajouterai que je trouve très lourd visuellement l'utilisation de ces constantes dans un appel de fonction, on se retrouve avec plein de "MaClasse::" partout.
Je les utilise personnellement uniquement en interne de ma classe, comme un élément de configuration finalement. Donc j'en ai une utilisation tout-à-fait anecdotique.
Mais leur utilisation se défend tout à fait, surtout parce qu'on n'a pas besoin de se préoccuper du nom qu'on va donner à ces constantes : comme elles sont dans l'espace de nom de la classe on n'a pas de risque de collision. Par exemple pour une classe utilisateur avec des niveaux de droits, on pourrait avoir
class User {
const GUEST = 0;
const MEMBER = 1;
const MODERATOR = 2;
const ADMINISTRATOR : 3;
Et au lieu de tester sur USER_LEVEL_ADMINISTRATOR je teste sur User::ADMINISTRATOR, pour le coup c'est plus léger
Donc c'est comme tout, c'est selon le besoin.
J'ai un peu la même opinion que toi, et j'ajouterai que je trouve très lourd visuellement l'utilisation de ces constantes dans un appel de fonction, on se retrouve avec plein de "MaClasse::" partout.
Je les utilise personnellement uniquement en interne de ma classe, comme un élément de configuration finalement. Donc j'en ai une utilisation tout-à-fait anecdotique.
Mais leur utilisation se défend tout à fait, surtout parce qu'on n'a pas besoin de se préoccuper du nom qu'on va donner à ces constantes : comme elles sont dans l'espace de nom de la classe on n'a pas de risque de collision. Par exemple pour une classe utilisateur avec des niveaux de droits, on pourrait avoir [php]class User {
const GUEST = 0;
const MEMBER = 1;
const MODERATOR = 2;
const ADMINISTRATOR : 3;[/php]Et au lieu de tester sur USER_LEVEL_ADMINISTRATOR je teste sur User::ADMINISTRATOR, pour le coup c'est plus léger ;)
Donc c'est comme tout, c'est selon le besoin.