29-01-2012, 01:02 AM
(Modification du message : 29-01-2012, 11:26 AM par Sephi-Chan.)
(28-01-2012, 11:05 PM)php_addict a écrit : quel est l'avantage d'un cookie de cet type par rapport au cookie de start_session() en php ? mis à part de pouvoir déconnecter un joueur? (ce qui doit être possible en php avec session_set_save_handler et la gestion des $_SESSION en base de donnée)
La possibilité de déconnecter le joueur n'est pas liée à la non-utilisation de sessions.
Regarde bien ma méthode
current_user
: elle recherche un utilisateur selon son persistence_token
.Si je change le
persistence_token
de mon utilisateur, la requête ne trouvera rien et la méthode current_user
retournera nil
: l'utilisateur ne sera donc plus considéré comme connecté.Note que la requête n'est effectuée qu'au premier appel de la méthode (au sein d'une même requête) : l'opérateur
||=
n'évalue l'expression que si la variable d'instance @current_user
est nil
ou false
. J'utilise cette astuce car j'appelle souvent cette méthode dans mes pages.Ensuite, l'utilisaton de cookies à la place de sessions est un choix : je préfère utiliser une approche stateless. Je n'ai pas besoin de stocker ça sur le serveur donc… Je ne le fais pas.
De plus, une application stateless tient mieux la charge, même si ça ne me concerne pas pour le moment.