2012-09-24 1 views
2

En utilisant le stockage de session par défaut Zend_Auth (sessions PHP), il crée un ID de session et le place dans un cookie. Si je veux obtenir le nom d'utilisateur de l'utilisateur authentifié (identité), la méthode Zend_Auth::getInstance()->getIdentity() l'obtient. Cependant, je veux obtenir à l'ID de session de l'utilisateur. Je peux y arriver juste en regardant $_COOKIE, ou en utilisant session_id() mais cela semble hackish, et si jamais je me suis éloigné de PHP Session de stockage pourrait-il casser? Alors, quel est le meilleur moyen d'obtenir l'identifiant de session actuel de la session Zend_Auth?Comment obtenir l'ID de session d'une session Zend_Auth?

+0

Qu'en est-il de l'utilisation d'une fonction standard pour son usage prévu est hackish? – tuespetre

+0

@tuespetre Si je créais des sessions avec 'session_start()', alors obtenir l'ID avec 'session_id()' a du sens et n'est pas hackish. Mais, comme je travaille avec une bibliothèque qui peut faire d'autres choses, ou peut-être faire d'autres choses à l'avenir, il semble déconnecté d'utiliser une fonction de bibliothèque de niveau supérieur avec un appel principal de bas niveau. – MidnightLightning

Répondre

7

Je ne pense pas que vous allez trouver une bonne façon de faire cela. Si une telle méthode existait, elle serait définie dans Zend_Auth_Storage_Interface, mais les types de stockage sans session n'ont pas nécessairement un ID de session équivalent, de sorte que les classes de stockage auth n'ont aucune abstraction pour cela. Le plus proche que vous obtiendrez est probablement:

Zend_Session::getId() 

mais appelle simplement session_id() de PHP, depuis Zend_Session dépend de la fonctionnalité intégrée en session PHP.

Questions connexes