Je ne comprends pas bien votre question peut-être, mais quand vous appelez $this->session->userdata('something')
pour une session a expiré il retournera simplement FALSE
. Donc, la meilleure méthode serait de vérifier si la variable n'est pas FALSE? Comme vous le feriez avec une autre variable qui pourrait ne pas être la valeur que vous voulez:
if($this->session->userdata('userid')){}
//or check it into the model's method, wherever you prefer
Où et quand faire cela dépend fortement de votre conception. Si vous avez toujours besoin de faire la même vérification, vous pouvez en faire une bibliothèque ou une fonction de modèle, de sorte que vous avez juste besoin d'écrire votre code une fois et d'appeler cette méthode. Si vous en avez besoin avant toute chose, vous pourriez envisager de le placer dans le constructeur, ou, comme l'a suggéréJordan Arsenault, créer un parent MY_Controller qui fait la vérification, et tous vos contrôleurs réguliers l'étendent. Vraiment, cela dépend de votre architecture et vous n'avez pas fourni suffisamment d'informations pour y répondre.
Tout ce que je peux dire est de faire vos méthodes tolerants de défaut, vérifiez toujours la valeur correcte avant d'alimenter le reste de votre code (si une session a expiré brise votre flux de travail)
* Beaucoup de mes contrôleurs ont des fonctions ... * suggère immédiatement que vous ne suivez pas les paradigmes DRY (Ne vous répétez pas). Vous devriez être capable d'avoir cette logique en un seul endroit. Envisagez d'utiliser l'héritage du contrôleur pour que le contrôleur principal prenne en charge la gestion des sessions et que vos contrôleurs individuels n'en aient pas besoin. Voir [ce post] (http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY) –