Comment puis-je obtenir un objet non qualifiés (court) nom de la classe?

Comment puis-je vérifier la classe d'un objet, dans le nom de PHP espacés environnement sans spécifier la totalité des espaces de classe.

Par exemple, supposons que j'avais une bibliothèque d'objet/Entité/Contrat/Nom.

Le code suivant ne fonctionne pas comme get_class retourne la totalité des espaces de classe.

If(get_class($object) == 'Name') {
... do this ...
}

L'espace de noms de la magie mot-clé renvoie l'espace de noms courant, qui n'est d'aucune utilité si l'objet testé est un autre espace de noms.

Je pourrais simplement spécifier le nom de la classe avec des espaces de noms, mais cela semble de verrouillage dans la structure du code. Également pas d'une grande utilité si je voulais changer l'espace de noms dynamiquement.

Peut-on penser d'une façon efficace pour ce faire. Je suppose qu'une option est regex.

  • Il semble près inutile, parce que les différents espaces de noms pourraient avoir les mêmes noms de classes définies à l'intérieur d'eux, alors comment allez-vous gérer cela? Et c'est parce que pleinement qualifié de la classe nom est retourné dans votre échantillon
  • Je suis sur un appareil mobile, donc je ne peux pas soumettre un décent réponse, mais la solution est la réflexion, plus précisément ReflectionClass::getShortName - php.net/manual/en/reflectionclass.getshortname.php
  • Pour les personnes qui cherchent une raison que cela: il pourrait être utile dans une fonction d'aide dans une classe de base commune (c'est à dire de plusieurs espaces de noms n'est jamais un problème dans cette situation).
InformationsquelleAutor Greg.Forbes | 2013-11-11