Pour faire des constantes proprement et qui sont de vraies constantes
je passerais plutôt par une classe "Constants" et des constantes de
classe ;)

Exemple :

/lib/Constants.php:
class Constants {
  const MA_CONSTANTE = "truc";
}

Accès : Constants::MA_CONSTANTE

C'est à peine plus lourd, et au moins c'est totalement dans l'esprit
du reste, même s'il est vrai que sfConfig me semble plus
<<symfonyque>> ;p

Je ne sais pas si PHP gère correctement l'héritage des constantes de
classe, mais il doit être possible de se faire une belle architecture
en faisant :
/lib/ProjectConstants.php <-- "class ProjectConstants" constantes
génériques communes à tout le projet
/apps/myApp/lib/AppConstants.php <-- "class AppConstants extends
ProjectConstants" constantes propres à l'application mais communes à
tous ses modules
/apps/myApp/modules/myModule/lib/Constants.php <-- "class Constants
extends AppConstants" constantes propres au module

Mais très franchement je n'en ai encore jamais eu l'utilité. En
général j'ai deux raisons de définir des constantes :
- Une variable commune à tout le projet qui définit une donné du
serveur (par exemple un chemin de dossier, une url, etc...). Ce type de
données dépend plus ou moins de l'environnement, donc je passe par
sfConfig (une "vraie" constante ne me permettrait pas de dépendre de
l'environnement)
- Une variable qui touche plutôt au modèle, par exemple pour les
champs ENUM : si je veux ajouter un champ "niveau" à la table
"utilisateur" qui prend ses valeurs dans (admin, modo, membre), je
voudrais passer par un ENUM ce qui n'est pas possible dans schema.yml,
donc je passe par un integer et je définis Utilisateur::NIVEAU_ADMIN,
Utilisateur::NIVEAU_MODO et Utilisateur::NIVEAU_MEMBRE.
- Une constante attachée à un processus particulier, en général ce
processus est géré par une classe, et donc la constante est une
constante de cette classe.

Je n'ai pas encore croisé de constante qui ne soit pas classable dans
l'un de ces trois cas, et j'aurais tendance à dire que si ce n'est pas
le cas, j'ai du me gourer quelque part. Mais tu peux toujours tester
la solution que je te donne plus haut qui me semble assez élégante.


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à