PHP Traits - la définition des constantes génériques

Quelle est la meilleure façon de définir des constantes qui peuvent être utilisées par un certain nombre de classes au sein d'un espace de noms? J'essaie d'éviter de trop héritage afin d'étendre les classes de base n'est pas une solution idéale et j'ai du mal à trouver une bonne solution à l'aide de traits. Est-ce de quelque manière possible en PHP 5.4 ou faut une autre approche?

J'ai la situation suivante:

trait Base
{
    //generic functions
}

class A 
{
    use Base;
}

class B 
{
    use Base;
}

Le problème est qu'il n'est pas possible de définir des constantes PHP traits. Idéalement ce que je veux c'est quelque chose comme ce qui suit:

trait Base
{
    const SOME_CONST = 'someconst';
    const SOME_OTHER_CONST = 'someotherconst';

    //generic functions
}

Puis ceux-ci pourraient être consulté si la classe qui s'applique le trait:

echo A::SOME_CONST;
echo B::SOME_OTHER_CONST;

Mais en raison des limites de traits, ce n'est pas possible. Des idées? Merci.

  • Vous peut l'utilisation des propriétés statiques, ce n'est pas une constante, mais il est également à seulement un caractère différent à l'appeler... public static $SOME_VAR = 'someconst'; et echo B::$SOME_VAR
  • Merci pour l'astuce. C'est une option bien que c'est un refactoriser le code du travail, et pas de nouveau code, donc je préfère le comportement de rester le même, plutôt que de mettre à jour tous les appels incessants (il y en a beaucoup).
  • Vous pouvez utiliser l'interface de déclarer consts.
  • bugs.php.net/bug.php?id=70986
  • bugs.php.net/bug.php?id=70986 a été remplacé par bugs.php.net/bug.php?id=75060 maintenant,
InformationsquelleAutor Tom Jowitt | 2014-06-23