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

Zend Framework PHP Discussion :

fonction flush et zend [ZF 1.11]


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut fonction flush et zend
    Bonjour,

    Donc j'essaie depuis un bon bout de temps de faire fonctionner flush mais sans succé.

    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    public function indexAction()
    {
            $this->_helper->layout->disableLayout();
        	$this->_helper->viewRenderer->setNoRender(true);
     
    	echo 'un<br />';
    	ob_flush();
    	sleep(3);
    	echo 'deux';
    	ob_flush();
    }
    Dans mon bootstrap j'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    $this->bootstrap("frontController");
    		$front = $this->getResource("frontController");
    		$front->setParam('disableOutputBuffering', true);
    		$front->returnResponse(true);
    Donc si quelqu'un aurai une piste, ca serait cool car la je ne sais plus quoi faire, tout s'affiche d'un coup au bout de trois seconde. flush est inefficace.

    merci d'avance.

  2. #2
    Membre confirmé Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Donc, j'ai du nouveau je viens de créer un directory dans apache et j'ai donc mis un simple fichier index.php avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo 'un<br />';
    	ob_flush();
            flush();
    	sleep(3);
    	echo 'deux';
    	ob_flush();
    donc j'ai ajouté flush() en plus.
    et ça à fonctionné parfaitement sur chrome.

    Donc ce qui confirme que cela vient bien de Zend en MVC.

  3. #3
    Membre confirmé Avatar de buse974
    Homme Profil pro
    Développeur / Chef de projet informatique
    Inscrit en
    Février 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur / Chef de projet informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 117
    Par défaut
    Bonjour,
    Aprés de longue recherche j'ai trouvé, donc a savoir vu dans la doc php "Même le navigateur peut réaliser une temporisation avant de l'afficher".
    De ce fait je suis passé par telnet pour vérifier directement le résultat et la surprise ça fonctionne.

    Donc mon code qui a fonctionner donne :
    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
     
        public function indexAction()
        {
        	$this->_helper->layout->disableLayout();
        	$this->_helper->viewRenderer->setNoRender(true);
     
                            echo '<br />UN<br />';
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />DEUX<br />';
     
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />TROIS<br />';
     
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />QUATRE<br />';
    		 }
    pour telnet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    > telnet 127.0.0.1 80
    GET /controlleur/action HTTP/1.0  // faire deux retour chariot
    Donc jusque la ça fonctionne sous telnet mais pas chrome, donc en faite en ajoutant tout simplement le Doctype et les entête http ben ça à fonctionné sous chrome.

    ce qui a donné au final :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
      public function indexAction()
        {
        	$this->_helper->layout->disableLayout();
        	$this->_helper->viewRenderer->setNoRender(true);
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
       </head></body>
    <?php
     
                            echo '<br />UN<br />';
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />DEUX<br />';
     
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />TROIS<br />';
     
    		        ob_flush();
    		        flush();
    		        sleep(5);
    		        echo '<br />QUATRE<br />';
    ?>
    </body>
    </html>
    <?php
    		 }
    Donc voila, ne fonctionne pas sur Firefox mais je n'en est pas l'utilité, donc résolu fonctionne trés bien avec Zend MVC.

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

Discussions similaires

  1. [ZF 1.10] comment fonction l'auto load sur zend
    Par geforce dans le forum Zend Framework
    Réponses: 1
    Dernier message: 22/10/2010, 12h36
  2. Utiliser des fonctions non objets avec Zend
    Par jux dans le forum Zend Framework
    Réponses: 6
    Dernier message: 08/02/2009, 11h58
  3. fonction FROM_UNIXTIME avec Zend
    Par benja507 dans le forum Zend_Db
    Réponses: 1
    Dernier message: 14/10/2008, 23h36
  4. Problème fonction FLUSH
    Par chreks dans le forum Fortran
    Réponses: 3
    Dernier message: 12/06/2008, 18h20
  5. Réponses: 6
    Dernier message: 24/05/2007, 17h18

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