Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > MVC
MVC Forum de support sur le développement d'applications de type modèle-vue-contrôleur avec Zend Framework ainsi que vos questions sur les plugins, les helpers etc. Avant de poster -> Cours MVC, FAQ ZF Controller
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 08/02/2011, 17h18   #1
Invité de passage
 
Inscription : mars 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 6
Points : 3
Points : 3
Par défaut [ZEND_VIEW_HELPER]Problème de méthode dans mon helper

Bonjour,

Je suis confronté à un problème que je n'arrive pas à résoudre.
Je crée une application zend, pour laquelle, je conçois un View Helper.
J'ai placé ce view Helper dans le dossier qu'il faut, et j'ai déclarer mon chemin de la façon suivante :

Code php :
1
2
3
4
5
6
7
8
9
10
11
12
protected function _initView()
            {
            // Initialisation de la vue et des helpers de vue
                $view = new Zend_View();
                $view->doctype('XHTML1_STRICT');
                        // On ajoute le dossier des helpers
                $view->addHelperPath(APPLICATION_PATH . '/views/helpers');
                        // On charge l'helper qui va se charger de la vue
                $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
                $viewRenderer->setView($view);
                return $view;
            }


Voici à présent le code de mon helper :
Code php :
1
2
3
4
5
6
7
8
9
10
    class Zend_View_Helper_BtnAll extends Zend_View_Helper_Abstract{
        protected $_style;
        public function btnAll()
        {   
        }   
        public function show($nbr) {
            $this->_style = $nbr;
            return $nbr;
        }
    }


Le problème est que lorsque je suis dans mon layout, et que je fais ceci :
Code php :
<?php echo $this->btnAll()->show('10'); ?>

Ceci ne fonctionne pas. Alors que si je fais :
Code php :
1
2
3
4
public function btnAll()
{   
      return 'essai';
}

et ensuite dans mon layout:
Code php :
<?php echo $this->btnAll(); ?>

essai s'affiche correctement.




D'où vient donc le problème ? est-ce du au fait qu'on ne puisse pas appeler d'autre methode d'un helper (ce qui me paraitrait étrange)

Merci d'avance
Eixurit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 09h34   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 174
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 174
Points : 6 460
Points : 6 460
Tu ne peux appeler qu'une méthode d'un helper, mais tu peux créer plusieurs méthodes dans ton helper

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
    class Zend_View_Helper_BtnAll extends Zend_View_Helper_Abstract{
        protected $_style;
        public function btnAll($var)
        {
             return $this->show($var)   
        }   
        public function show($nbr) {
            $this->_style = $nbr;
            return $nbr;
        }
    }
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2011, 09h53   #3
Invité de passage
 
Inscription : mars 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 6
Points : 3
Points : 3
Merci de ta réponse mais quelqu'un m'a expliqué une solution

http://fr.wikipedia.org/wiki/D%C3%A9...%C3%AEn%C3%A9e

En fait je peux effectuer l'action :
Code :
<?php echo $this->btnAll()->show('10'); ?>

Afin d'accéder à la méthode méthode de mon view helper que je souhaite, j'utilise la solution de désignation chainée que me permet en ne mettant qu'un return $this dans ma méthode btnAll
Eixurit 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 08h02.


 
 
 
 
Partenaires

Hébergement Web