IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Twig] Sans Symfony $_SESSION


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut [Twig] Sans Symfony $_SESSION
    Bonsoir,

    J'utilise Twig sans Symfony.

    Je souhaite pouvoir utiliser $_SESSION dans le template pour retourner des messages d'erreurs par exemple lors de la soumission d'un formulaire. J'ai suivi les instructions que j'ai pu trouver sur la toile.

    J'ai donc créé un fichier Session.php dans twig/lib/Twig/Extension

    Voici la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    class Twig_Extension_Session extends Twig_Extension
    {
        public function getName()
        {
            return 'flash';
        }
     
        public function flash($flash) {
            return array(
                'session' => $flash
            );
        }
    }
    Tout est bon ou je me suis planté à ce niveau là ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Si vous avez besoin de plus de détails
    Si vous avez besoin de plus détails, je peux essayer d'étoffer. Même si ça n'est pas adapté à mon projet mais que vous connaissez les étapes générales à suivre, je suis preneur. A vrai dire j'ai regardé beaucoup de sources mais en anglais et l'anglais, je suis encore en train de l'apprendre.

    Un point important aussi. J'effectue une redirection avec header()

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    Novembre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Novembre 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Vous savez quoi ? J'ai trouvé, j'avais simplement oublié session_start(), je me sens bête ...

    J'explique quand même comment faire, histoire de ne pas avoir posté inutilement :

    On démarre une session :

    On ajoute dans twig/lib/Twig/Extension un fichier, par exemple

    Dans ce fichier on crée une classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class Twig_Extension_Session extends Twig_extension
    {
        public function getGlobals()
        {
            return array(
                'session'   => $_SESSION
            ) ;
        }
     
        public function getName()
        {
            return 'session';
        }
    }
    Dans le fichier d'instanciation de twig, on importe la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    use Twig_Extension_Session;
    Puis ajoute l'extension :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $twig->addExtension(new Twig_Extension_Session());
    Enfin, et c'est un exemple, on crée une fonction qui prend en paramètre une variable $message qui est affectée a $_SESSION['message']

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public function flash($message)
        {
            $_SESSION['message'] = $message; 
        }
    On appelle la fonction flash() et on lui passe un argument.

    ainsi pour afficher ce message dans la page, on utilise

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/07/2015, 19h22
  2. [2.x] Affichage tableau dans twig sans indice
    Par RobKris63 dans le forum Symfony
    Réponses: 3
    Dernier message: 03/10/2012, 20h11
  3. Symfony Validator sans Symfony
    Par foxdie dans le forum Doctrine2
    Réponses: 1
    Dernier message: 27/06/2012, 07h54
  4. [1.x] Twig sans Symfony et page d'erreur (404)
    Par lapaupiette dans le forum Symfony
    Réponses: 2
    Dernier message: 23/12/2011, 11h19
  5. [2.x] Comment utiliser un bundle sans Symfony
    Par khand dans le forum Symfony
    Réponses: 4
    Dernier message: 23/09/2011, 14h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo