Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je travaillais jusqu'à récemment avec la version 1.0.0 RC2 du Framework et tout marchait bien. Voyant que la version finale est sortie, j'ai mis à jour.
Depuis, le composant me renvoit une exception expliquant que mon fichier 'index.phtml' n'est pas présent, hors j'ai définit comme extension 'php'.
Voici le code que j'utilisais pour la version RC2 (tiré du tutoriel sur Kitpages) :
$view = new Zend_View(); $viewRenderer = Zend_Controller_Action_HelperBroker::getExistingHelper('viewRenderer'); $viewRenderer->setView($view) ->setViewSuffix('php');
Il m'a donné une autre erreur que j'ai pu corrigé en recherchant des informations sur le forum. Ce qui me donne le code actuel :
$view = new Zend_View(); $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); $viewRenderer->setView($view) ->setViewSuffix('php');
Mais malgré ma dernière ligne, il me recherche toujours une extension phtml.
Avez vous une solution ?
Merci d'avance
Dernière modification par Ysaak (02-07-2007 09:55:38)
Hors ligne
Je vais upgrader aussi et je vais voir ce qui foire dans le tutoriel.
Par contre, dans ton code, il faut forcément dire au controlleur qu'il faut utiliser le helper que tu viens d'instancier. Pour indiquer ça au controlleur il faudra utiliser le HelperBroker...
Je vais essayer de mettre à jour ça dans la journée, si je trouve un petit quart d'heure...
Philippe
Hors ligne
J'ai pas encore toutes les billes, mais il semble que le viewRenderer ne soit plus activé par défaut (perso je vois ça comme un progrès...).
Ton code devrait ressembler à :
$view = new Zend_View(); $viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer(); $viewRenderer->setView($view) ->setViewSuffix('php'); Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
A+, Philippe
Hors ligne
Bonjour,
Je viens de tester le bout de code et le programme refonctionne normalement.
Merci beaucoup.
@+
Hors ligne
re-bonjour,
Je change mon fusil d'épaule, pour activer le viewRenderer, il vaut mieux utiliser le système suivant :
$viewRenderer = Zend_Controller_Action_HelperBroker:: getStaticHelper('viewRenderer'); $viewRenderer->setView($view) ->setViewSuffix('php');
Le ViewRenderer n'est plus instancié par défaut mais fait partie des Helpers standards. getStaticHelper() regarde s'il y a déjà un helper instancié. S'il est déjà instancié, il renvoie le helper directement, sinon il l'instancie et renvoie le nouveau helper.
Les deux codes sont à peu près équivalents... Maintenant que le ViewRenderer n'est plus activé par défaut, je pense que je vais l'enlever de mon tutoriel. Je ne suis absolument pas convaincu par l'approche viewRenderer...
A+, Philippe
Hors ligne
Bonjour,
Là je suis entièrement d'accord, le ViewRenderer ne répond qu'à une utilisation bien précise, dès que tu veux sortir des rails un tant soit peu, ça devient un boulet énorme. Pour le faire cadrer avec mes besoins, j'ai dû overrider (comment on dit en français ?) au moins la moitié des méthodes.
Finalement, il ya deux fonctionnalités qui m'intéressaient :
* La view dispo dans tous les controlleurs
* Le résultat du rendu poussé automatiquement dans le Response Object.
A+
Fred
Hors ligne
De ce que j'ai compris, le viewRenderer est toujours activé par défault, mais il est instancié plus tard.
Le but était d'éviter l'instanciation automatique meme si tu le désactivait depuis le bootstrap.
Donc tu peux peut etre corriger ton tuto mais retirer le viewRenderer ne serait pas, si j'ai bien compris, une bonne idée.
Hors ligne
Bien vu, c'est effectivement le cas... bon à mon grand désespoir, je laisse mon tuto en l'état (juste en replaçant le getExistingHelper par un getStaticHelper...)
Philippe
Hors ligne
Pages: 1