SessionHelper

class SessionHelper(View $view, array $settings = array())

Équivalent du Component Session, le Helper Session offre la majorité des fonctionnalités du component et les rend disponible dans votre vue. Le Helper session est automatiquement ajouté à la vue, il n’est pas nécessaire de l’ajouter à la variable tableau $helpers dans votre controller.

La grande différence entre le Component Session et le Helper Session est que ce dernier ne peut pas écrire dans la session.

Comme pour le Component Session, les données sont écrites et lues en utilisant des structures de tableaux avec la notation avec points, comme ci-dessous:

array('User' =>
    array('username' => '[email protected]')
);

Étant donné ce tableau, le nœud sera accessible par User.username, le point indiquant le tableau imbriqué. Cette notation est utilisée pour toutes les méthodes du helper Session où une variable $key est utilisée.

SessionHelper::read(string $key)
Type renvoyé:

mixed

Lire à partir de la Session. Retourne une chaîne de caractère ou un tableau dépendant des contenus de la session.

SessionHelper::consume($name)
Type renvoyé:

mixed

Lit et supprime une valeur de Session. C’est utile quand vous voulez combiner la lecture et la suppression de valeurs en une seule opération.

SessionHelper::check(string $key)
Type renvoyé:

boolean

Vérifie si une clé est dans la Session. Retourne un boléen sur l’existence d’un clé.

SessionHelper::error()
Type renvoyé:

string

Retourne la dernière erreur rencontrée dans une session.

SessionHelper::valid()
Type renvoyé:

boolean

Utilisée pour vérifier si une session est valide dans une vue.

Affichage de notifications ou de messages flash

SessionHelper::flash(string $key = 'flash', array $params = array())

Obsolète depuis la version 2.7.0: Vous devez utiliser Flash pour afficher les messages flash.

Comme expliqué dans Création de messages de notification vous pouvez créer des notifications uniques pour le feedback. Après avoir créé les messages avec SessionComponent::setFlash(), vous voudrez les afficher. Une fois que le message est affiché, il sera retiré et ne s’affichera plus:

echo $this->Session->flash();

Ce qui est au-dessus sortira un message simple, avec le HTML suivant:

<div id="flashMessage" class="message">
    Vos trucs on été sauvegardés.
</div>

Comme pour la méthode du component, vous pouvez définir des propriétés supplémentaires et personnaliser quel élément est utilisé. Dans le controller, vous pouvez avoir du code comme:

// dans un controller
$this->Session->setFlash("L'utilisateur n'a pas pu être supprimé.");

Quand le message sort, vous pouvez choisir l’élément utilisé pour afficher ce message:

// dans un layout.
echo $this->Session->flash('flash', array('element' => 'failure'));

Ceci utilise View/Elements/failure.ctp pour rendre le message. Le message texte sera disponible dans une variable $message dans l’élément.

A l’intérieur du fichier élément d’échec, il y aura quelque chose comme ceci:

<div class="flash flash-failure">
    <?php echo $message ?>
</div>

Vous pouvez aussi passer des paramètres supplémentaires dans la méthode flash(), ce qui vous permet de générer des messages personnalisés:

// Dans le controller
$this->Session->setFlash('Merci pour votre paiement %s');

// Dans le layout.
echo $this->Session->flash('flash', array(
    'params' => array('name' => $user['User']['name'])
    'element' => 'payment'
));

// View/Elements/payment.ctp
<div class="flash payment">
    <?php printf($message, h($name)); ?>
</div>