Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour à tous,
Je dois créer ma propre library sous Zend et je galère un petit peu :
J'ai donc le dossier "Malibrary" sous library/ (donc avec le dossier Zend).
Dans mon bootstrap j'appelle cette library, aucun soucis.
Un exercice est de créer une class controller dont tous mes controllers étendront.
Je crée donc un fichier Malibrary/Controller.php
Dedans, je fais donc :
<?php
class Malibrary_Controller extends Zend_Controller_Action
{
public function init()
{
$this->bdd = Zend_Registry::get('bdd');
if((bool)Zend_Registry::get('xml')->application->log)
{
// fonction qui log un message
[...]
$logger->log('', 6);
}
}
}
En testant l'appli, ça fonctionne parfaitement. En allant dans les log (fichier .log), deux lignes sont inséré...
Je me demande vraiment si ma classe doit extendre de Zend_Controller_Action
J'espère que mon problème est correctement expliqué.
Merci d'avance !
Dernière modification par Nowis (02-02-2012 17:14:31)
Hors ligne
Salut, normalement c'est comme ça qu'il faut faire. Concernant les 2 lignes de log, j'avais remarqué en exécutant en mode débug qu'on passait 2 fois dans le contrôleur mais je ne sais pas à quoi c'est dût
Hors ligne
Ok!
Bon j'attendais d'autre réponse concernant le double affichage mais apparemment personne n'a la réponse. Merci pour ces informations !
C'est parfait alors
Hors ligne
Si tu as un _forward quelque part, ça peut-être la cause. Si tu as deux lignes, c'est sans doute que deux controller différents ont été initialisé.
Hors ligne
Bonjour,
Ce que je te propose, pour trouver qui appelle ta fonction 2 fois, c'est de faire inscrire dans le log, la sortie de debug_print_backtrace()
Hors ligne
Bonjour,
le debug_print_backtrace() ne m'indique qu'un seul appel du controller.
En faisant :
$controller = $this->getRequest()->getControllerName();
$action = $this->getRequest()->getActionName();
Les deux lignes pointent sur le même couple controller/action.
Je n'ai aucun _forward...
En faisant un echo dans cette library, un seul affichage à l'écran est fait...
Hors ligne