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

Langage PHP Discussion :

ob_start et paramètres de la fonction callback


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    248
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 248
    Points : 101
    Points
    101
    Par défaut ob_start et paramètres de la fonction callback
    Salut à tous...
    voila j'ai un pb insoluble je crois...

    je fais appel à une fonction pour modifier mon buffer en php...
    dans cette fonction je voudrai me connecter à ma bdd... mais je ne sais pas comment passer mon objet bdd ...

    exemple

    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
    16
    17
    18
    19
    20
    21
     
     
    $db = connexion à la bdd...super j'ai un objet pdo :)
     
    // bufferisation et modification avant d'afficher
    function affichage($buffer)
    {
     
     // j'aimerai ici faire une requete dans ma bdd
    // du genre
     
    $res = $db->query('select * from table');
     
    //mais je vois pas comment faire :(  
     
     
      return $buffer.serialize($res);
     
    }
     
    ob_start("affichage");
    c'est possible selon vous ?
    thanks
    ++

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    je ne comprends pas trop la question
    Le buffer ne sert que pour temporiser un rendu web. Que vient faire une requête data au milieu d'une fonction de rappel du buffer d'affichage ?
    Y aurait-il pas comme un souci de conception ?

  3. #3
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Malheureusement je ne pense pas. Tu vas devoir utiliser le scope global (regarde $GLOBALS) ou un Singleton pour PDO (ce qui reviens de fait au même).

    Pour que ton exemple fonctionne il suffit de faire:
    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
    16
    17
    18
    19
    20
    21
    22
     
     
    $db = connexion à la bdd...super j'ai un objet pdo :)
     
    // bufferisation et modification avant d'afficher
    function affichage($buffer)
    {
      global $db;
     
     // j'aimerai ici faire une requete dans ma bdd
    // du genre
     
    $res = $db->query('select * from table');
     
    //mais je vois pas comment faire :(  
     
     
      return $buffer.serialize($res);
     
    }
     
    ob_start("affichage");

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Benjamin, c'est moche
    Qu'il soit possible de retoucher le buffer en sortie, je veux bien (quoi que, à la rigueur un htmlspecialchars() ou htmlentities() sur un rendu bien ciblé, passons) mais de là à le retoucher au point d'avoir besoin d'accèder à la base de données, NON !!!! Il s'embarque sur un terrain glissant.
    Après, je dois aussi avouer que je ne suis pas non plus un spécialiste mondial des savonnettes

  5. #5
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est pas parce que je le ferai jamais personnellement qu'il faut pas répondre à la question

    Mais je suis d'accord avec toi, d'un point de vue conceptuel, ça ne veut absolument rien dire de connecter la couche présentation avec la bdd.

Discussions similaires

  1. Paramètres des fonctions callback
    Par troumad dans le forum GTK+ avec C & C++
    Réponses: 13
    Dernier message: 31/03/2015, 14h55
  2. Fonctions CallBack et paramètre
    Par myred dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 22/04/2012, 17h15
  3. Réponses: 3
    Dernier message: 29/11/2011, 20h25
  4. [son]paramètre "len" de la fonction callback.
    Par troumad dans le forum SDL
    Réponses: 6
    Dernier message: 08/12/2009, 11h31
  5. Paramètres dans les fonctions callback
    Par kelepoc dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 24/07/2009, 01h09

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