Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-06-2008 15:13:08

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

[Résolu][Zend_View] Helpers, path personnalisé et erreur...

Bonjour à toutes et à tous,

La question du jour concernera la personnalisation du path pour les helpers de vue.
Alors j'ai la structure suivante :

Code:

+ application
     + modules
           + news
                 + controllers
                        IndexController.php
                 + views
                        + helpers
                               SetMyTitle.php
                        + scripts
                              + index
                                     index.phtml

Dans l'action 'index' de IndexController.php, j'ai :

Code:

$view = new Zend_View();
$view->setHelperPath('C:\wamp\www\zf\application\modules\news\views\helpers','My_View_Helper_');

Dans mon helper (SetMyTitle.php) :

Code:

<?php
class My_View_Helper_SetMyTitle
{
    public function setMyTitle()
    {
        $request = Zend_Controller_Front::getInstance()->getRequest();
        $this->headTitle($request->getModuleName())
             ->headTitle($request->getControllerName())
             ->headTitle($request->getActionName());

        $this->headTitle('La page des news');     
        
        $this->headTitle()->setSeparator(' - ');
        return $this->headTitle;
    }
}

Enfin dans ma vue :

Code:

<?= $this->doctype('XHTML1_STRICT'); ?>
<?php 
    $this->headTitle($this->setMyTitle()); 
?>
<h1>neWs</h1>
<p>Lorem ipsum telme is metrir loram pullum timinum</p>

Donc sauf erreur de ma part, l'application concrète de la doc sur le sujet (http://framework.zend.com/manual/en/zen … pers.paths).

Et pourtant, j'obtiens l'erreur suivante :

Code:

( ! ) Zend_View_Exception: helper 'SetMyTitle' not found in path in C:\wamp\www\zf\library\Zend\View\Abstract.php on line 1004
Call Stack
#    Time    Memory    Function    Location
1    0.9598    48928    {main}( )    ..\index.php:0
2    0.9606    60016    require( 'C:\wamp\www\zf\application\bootstrap.php' )    ..\index.php:2
3    1.0254    1259048    Zend_Controller_Front->dispatch( )    ..\bootstrap.php:40

Toutefois si je vérifie, les paths avec getHelperPaths(), tout semble ok :

Code:

array
  0 => 
    array
      'prefix' => string 'My_View_Helper_' (length=15)
      'dir' => string 'C:\wamp\www\zf\application\modules\news\views\helpers\' (length=54)
  1 => 
    array
      'prefix' => string 'Zend_View_Helper_' (length=17)
      'dir' => string 'C:\wamp\www\zf\library\Zend\View\Helper\' (length=40)

Qui a une idée, j'ai cherché dans le forum et sur Google mais les quelques threads que j'ai pu voir ne m'ont pas apporté la solution.

Je suis sous Zend Framework v1.5.2 avec WampServer en version 2.0

Merci de votre aide.

Dernière modification par elkolonel (25-06-2008 17:23:43)

Hors ligne

 

#2 25-06-2008 16:22:09

fte
Membre
Lieu: 06 13 83
Date d'inscription: 16-05-2008
Messages: 112
Site web

Re: [Résolu][Zend_View] Helpers, path personnalisé et erreur...

elkolonel a écrit:

Bonjour à toutes et à tous,
...
Dans mon helper (SetMyTitle.php) :

Code:

<?php
class My_View_Helper_SetMyTitle
{
    public function setMyTitle()
    {
....
    }
}

..
Merci de votre aide.

Essaye de renommer cette classe en Zend_View_Helper_SetMyTitle, je viens de regarder mes views helpers aucun ne commencent par My_QuelqueChose

Je n'utilise My_Toto que pour mes classes persos reutilisables sous le chemin library/My/

Hors ligne

 

#3 25-06-2008 17:21:20

elkolonel
Administrateur
Lieu: Grasse
Date d'inscription: 18-12-2007
Messages: 299
Site web

Re: [Résolu][Zend_View] Helpers, path personnalisé et erreur...

fte a écrit:

elkolonel a écrit:

Bonjour à toutes et à tous,
...
Dans mon helper (SetMyTitle.php) :

Code:

<?php
class My_View_Helper_SetMyTitle
{
    public function setMyTitle()
    {
....
    }
}

..
Merci de votre aide.

Essaye de renommer cette classe en Zend_View_Helper_SetMyTitle, je viens de regarder mes views helpers aucun ne commencent par My_QuelqueChose

Je n'utilise My_Toto que pour mes classes persos reutilisables sous le chemin library/My/

Alors, il semblerait que tu ais raison.
J'ai modifié mon code comme suit :
Action 'index' de IndexController

Code:

...
    function indexAction ()
    {
        $view = new Zend_View();
        $view->addHelperPath('C:\wamp\www\zf\application\modules\news\views\helpers');
    }
...

Le code du Helper

Code:

<?php
class Zend_View_Helper_SetMyTitle
{
    public function setMyTitle($param='Bienvenue')
    {
        $view = new Zend_View();
        $request = Zend_Controller_Front::getInstance()->getRequest();
        
        
        $view->headTitle($request->getModuleName())
             ->headTitle($request->getControllerName())
             ->headTitle($request->getActionName());

        $view->headTitle($param);     
        
        $view->headTitle()->setSeparator(' - ');
        return $view->headTitle;
    }
}

Le code de la vue

Code:

<?= $this->doctype('XHTML1_STRICT'); ?>
<?= $this->headTitle($this->setMyTitle('Les news du jour')); ?>
<h1>neWs</h1>
<p>Lorem ipsum telme is metrir loram pullum timinum</p>

Si je modifie le nom de la classe helper en quelquechose d'autre que 'Zend_View_Helper_SetMyTitle', cela ne fonctionne plus, même si je modifie le prefixe d'helper dans l'appel de mon 'IndexController'.

D'ailleurs que je mette quelquechose ou pas dans le paramètre préfixe du helper rien ne se passe à part modifier le préfixe helper dans l'array retourné par getHelperPaths().

Bug or not bug ??
Faut il le signaler ?

Merci en tout cas fte ! smile

Cordialement,

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