Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-06-2008 17:43:49

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

[Résolu] Déclaration de variable de la partie init() d'un controller

Bonjour à tous,

Je souhaite déclarer une variable dans le bloc init() de mon controller pour ne pas avoir à déclarer cette variable partout (utiliser pour le système multi langue de l'application.

Si je fais ceci :

Code:

function init()
{
$translate = Zend_Registry::get('translate');
}

function listAction()
{
$this->view->title_page = ($translate->_("Title_page_news_views_list"));
}

Le controller me renvoie l'erreur suivante:

Notice: Undefined variable: translate in /var/www/projet-0rigine/0rigine-xtrem/application/modules/news/controllers/ViewController.php on line 23

Fatal error: Call to a member function _() on a non-object in /var/www/projet-0rigine/0rigine-xtrem/application/modules/news/controllers/ViewController.php on line 23

Si je déclare ma variable $translate de la même façon mais dans la fonction listAction, tout se passe bien.
Comment faire pour déclarer une variable général à mon application?

Merci d'avance.

Hors ligne

 

#2 15-06-2008 18:02:28

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu] Déclaration de variable de la partie init() d'un controller

Bonjour,

Ta variable $translate est locale à ta fonction. Si tu veux qu'elle soit accessible dans toute ta classe, il faut créer un attribut de classe.
Bref, tu peux utiliser $this->translate à la place de $translate dans ton exemple.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 15-06-2008 18:40:42

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu] Déclaration de variable de la partie init() d'un controller

Code:

class MonConteroller extends Zend_Controller_Action {
   public $translate = null;

   function init()
   {
   $this->translate = Zend_Registry::get('translate');
   }

   function listAction()
   {
   $this->view->title_page = ($this->translate->_("Title_page_news_views_list"));
   }
}

Hors ligne

 

#4 15-06-2008 22:06:26

slaughter
Membre
Date d'inscription: 01-04-2008
Messages: 217

Re: [Résolu] Déclaration de variable de la partie init() d'un controller

Merci, c'était exactement ça que je voulais.

Juste une petite question: l'attribut de classe "view" est utilisé par défaut pour envoyer des informations à la vue.
Comment savoir s'il y a d'autres attributs de ce type? Ceci dans le but de ne pas les utiliser pour faire autre chose.

Hors ligne

 

#5 16-06-2008 07:37:07

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu] Déclaration de variable de la partie init() d'un controller

print_r($this) ou dump($this)
dans une action affiche tous les membre du contrôleur

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages