Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2011, 15h16   #1
Membre habitué
 
Avatar de buse974
 
Homme Christophe ROBERT
Étudiant
Inscription : février 2007
Messages : 111
Détails du profil
Informations personnelles :
Nom : Homme Christophe ROBERT
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Services de proximité

Informations forums :
Inscription : février 2007
Messages : 111
Points : 122
Points : 122
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 :
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 :
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.
buse974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 15h37   #2
Membre habitué
 
Avatar de buse974
 
Homme Christophe ROBERT
Étudiant
Inscription : février 2007
Messages : 111
Détails du profil
Informations personnelles :
Nom : Homme Christophe ROBERT
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Services de proximité

Informations forums :
Inscription : février 2007
Messages : 111
Points : 122
Points : 122
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 :
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.
buse974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 09h28   #3
Membre habitué
 
Avatar de buse974
 
Homme Christophe ROBERT
Étudiant
Inscription : février 2007
Messages : 111
Détails du profil
Informations personnelles :
Nom : Homme Christophe ROBERT
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Services de proximité

Informations forums :
Inscription : février 2007
Messages : 111
Points : 122
Points : 122
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 :
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 :
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 :
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.
buse974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h30.


 
 
 
 
Partenaires

Hébergement Web