Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
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 06/05/2011, 16h23   #1
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Par défaut Problème de forward dans un filter

Bonjour,

Je veux faire un forward dans un filter, ce forward fonctionne mais j'ai un warning du style :

Code :
Warning: Cannot modify header information - headers already sent by (output started at \lib\symfony\response\sfResponse.class.php:105) in \lib\symfony\response\sfWebResponse.class.php on line 349
Dès que je désactive la debug_bar je n'ai plus ce warning.

Je pense donc que la debug_bar est "chargée" avant le filter et donc envoie du code avant le forward.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
class maintenanceFilter extends sfFilter {
 
  public function execute ($filterChain) {
    if($this->isFirstCall()) {
      .........      
      $context = $this->getContext();
      $context->getController()->forward('default','maintenance');
      .........
      $filterChain->execute();
    }
  }
 
}
Je précise que je ne fais aucun "echo ..." dans ce filtre et il n'y a aucun code dans l'action 'maintenance'

Est ce que quelqu'un à déjà eu le problème ?

Merci
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 11h45   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Où est place ton filtre dans l'enchainement des filtres ?

J'ai des doutes sur l'opportunité de faire un forward dans un filtre. A mon avis, le fait d'arriver sur une nouvelle action à pour effet d'envoyer le précédant sfResponse généré et d'en ouvrir un nouveau. C'est ce nouveau, qui, même vide, devrait générer le problème.

Essayes de travailler sans le forward dans ton filtre, il me semble une très mauvaise idée.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 09h21   #3
Membre à l'essai
 
Inscription : mars 2008
Messages : 159
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 159
Points : 24
Points : 24
Merci pour ton aide en effet c'était "l'ordre des filter". Mon filtre était après le rendering.

Le but de mon filtre est de redirigé vers une page de maintenance si une variable est défini dans le app.yml. Cette fonctionnalité est valable pour toute l'application, c'est donc pour cela que je fais un forward dans mon filter.
coupolites est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 10h18   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Si cela marche tant mieux.

J'en n'aurais oser essayer
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta 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 09h14.


 
 
 
 
Partenaires

Hébergement Web