Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-08-2007 09:37:04

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Modèle M.V.C. : Nom des fichiers PHTML

Bonjour à tous !

Dans le cadre du développement d'une application, j'utilise le Zend Framework avec le modèle MVC. J'ai travaillé avec WAMP sous Windows XP et toute fonctionne bien dans cet environnement.

Mais lors de la migration des fichiers sur un serveur Linux (donc sensible à la casse), le rendu de la vue ne s'effectue que si le nom du fichier PHTML est tout en minuscules, alors qu'auparavant il était en notation "Camel Case" avec une minuscule au début.

Quelqu'un peut-il m'expliquer pourquoi ? Je précise que je n'utilise pas la fonction render() à la fin de mes fonctions dans les contrôleurs, le rendu étant fait automatiquement avec le fichier PHTML correspondant à la fonction (Exemple : Le fichier rechercherClient.phtml est automatiquement rendu à la fin de la fonction rechercherClientAction() qui se trouve dans l'un de mes contrôleurs).

Deuxième question liée à la précédente : comment fonctionne ce rendu automatique ? J'ai lu sur ce forum que certains préconisaient de demander explicitement à l'aide de la classe Zend_View le rendu du template en question.

Vos informations me seront d'un grand secours car actuellement, la seule solution "rapide" qui a été trouvée est de renommer les fichiers PHTML tout en minuscules ...

Merci,
J-Zender.

Hors ligne

 

#2 29-08-2007 09:52:19

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

Re: Modèle M.V.C. : Nom des fichiers PHTML

en fait le framework garde une trace de cet appel à render
dans le post dispatch si le rendu à déjà eu lieu il ne fait rien sinon il lance le rendu (sauf si noRender a été demandé)

AJYT

Hors ligne

 

#3 29-08-2007 10:05:29

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Re: Modèle M.V.C. : Nom des fichiers PHTML

Merci sekaijin, il est donc possible de désactiver ce rendu automatique soit en positionnant l'option adéquate, soit en demandant le rendu explicite d'un template.

Mais par rapport à la casse ? Comment ce rendu automatique fonctionne-t-il ?
La solution idéale pour moi serait de positionner une option, dans l'index de l'application, à : "rendre le template qui a EXACTEMENT le même nom que la fonction du contrôleur", ainsi je pourrais garder la casse de mes noms de fichiers telle quelle.

Des infos ?

Merci,
J-Zender.

Hors ligne

 

#4 29-08-2007 10:08:29

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

Re: Modèle M.V.C. : Nom des fichiers PHTML

Bonjour jzender,

C'est le viewRenderer qui assure ce rendu automatique. C'est un helper qui regarde le nom de ton controller, de ton action et l'extension par défaut et construit le chemin qui va bien pour ta vue.
Effectivement il met tout en minuscule pour construire le nom de la vue.

Par défaut il construit le nom de la vue avec la convention suivante :

Code:

protected $_viewScriptPathSpec = ':controller/:action.:suffix';

ensuite il remplace avec les éléments suivants (cf ViewRenderer.php dans Controller/Action/Helper/) :

Code:

        $replacements = array(
            ':moduleDir'  => $moduleDir,
            ':module'     => str_replace($this->_delimiters, '-', strtolower($module)),
            ':controller' => str_replace($this->_delimiters, '-', strtolower(str_replace($this->_pathDelimiters, '/', $controller))),
            ':action'     => str_replace($this->_delimiters, '-', strtolower($action)),
            ':suffix'     => $suffix
        );

Donc effectivement les noms des modules, actions et controlleurs sont mis en minuscule (ne me demande pas pourquoi smile )

A+, Philippe


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

Hors ligne

 

#5 29-08-2007 10:13:52

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

Re: Modèle M.V.C. : Nom des fichiers PHTML

rebonjour,

Pour ta 2e question si tu veux désactiver le rendu automatique, tu peux utiliser dans ton bootstrap :

Code:

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->setNoRender(true);

Tu auras plus de billes à l'adresse
http://framework.zend.com/manual/en/zen … ockhelpers
et tu cherches ViewRenderer... ils expliquent tout le fonctionnement.

A+, Philippe


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

Hors ligne

 

#6 29-08-2007 10:29:06

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Re: Modèle M.V.C. : Nom des fichiers PHTML

Merci Philippe, je vais creuser tout ça !

Juste une question : cela signifie que, si j'utilise ce rendu automatique, pour être sur que mes pages soient accessibles, il faut que mes URLs soient en minuscules ?

Merci,
J-Zender.

Hors ligne

 

#7 29-08-2007 10:31:16

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

Re: Modèle M.V.C. : Nom des fichiers PHTML

A priori non, il faut juste que tes noms de fichiers .phtml soient en minuscule, les URL peuvent avoir la casse que tu veux. Par contre, comme je n'utilise pas le viewRenderer, je te dis ça juste à partir du code... je n'ai pas essayé...

A+, Philippe


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

Hors ligne

 

#8 29-08-2007 10:32:29

jzender
Membre
Date d'inscription: 12-07-2007
Messages: 25

Re: Modèle M.V.C. : Nom des fichiers PHTML

Je viens d'essayer, effectivement la casse des URLs n'a aucune importance.

Merci beaucoup !
J-Zender.

Hors ligne

 

#9 04-09-2007 12:13:22

Julien
Membre
Date d'inscription: 16-03-2007
Messages: 501

Re: Modèle M.V.C. : Nom des fichiers PHTML

J'ai écrit un article sur le ViewRenderer, ici

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