Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut
oui vous avez bien lu j'ai laissé de côte la 1.0.4
je suis donc plongé dans la 1.7 et j'analysais un peut le fonctionnement de la bête.
je me pose une question quant au choix de Zend
exemple dans Zend_Controller_Front
nous trouvons les deux élément d'extensions de ZF que sont les plugins et les helpers
pour les deux il est nécessaire d'avoir une collection et un gestionnaire de cette collection.
les deux doivent être connus du front controller
je me demande pourquoi dans un cas le broker et un membre du front controller et pas dans l'autre cas où la collection est géré dans un membre statique
autre différence dans ces deux élément pourtant si semblables
la méthode add registerPlugin et addHelper dans les deux cas les méthodes ajoute un nouvel élément à la liste.
Or dans PluginBroker elle prend un deuxième paramètre pour spécifier l'index (dans la liste des plugins) et pas dans le HelperBroker
j'ai d'abord pensé qu'il n'y en avait pas besoin
mais dans la méthode dispatch du front contrôleur On modifie directement le membre de HelperBroker pour palier ce manque sans passer par la méthode add
Je ne sais pas trop où en est la roadmap mais je me demande s'il ne serait pas opportun de rendre ça plus uniforme dans une prochaine version
A+JYT
Hors ligne
1/ Niveau code, il n'y peut être aucune raison. Peut être qu'on pourrait trouvé la raison dans une certaine logique de conception. Histoire de dire que les plugins ne peuvent pas travaillé (ou pas d'interet) sans 'toute la mécanique du ZF', alors que les helpers peuvent être totalement autonome (on ne trouve pas de setRequest, setReponse dans les helpers..)
2/ Dans les plugins, je peux comprendre l'interet des offsets. Mais dans les helpers... aucun idée.. peut être dans le cas de helper qui porte le même nom ?
Hors ligne
je ne sais pas trop à quoi sert l'offset dans le HelperBroker mais
le view renderer helper est placé à l'offset -80 donc avant tout les autres
je ne sais quel est l'intérêt
j'imagine qu'il les recherche de façon descendante et donc cela permettrait d'en fournir un autre sans avoir à supprimer celui qui est déjà actif mais je n'en suis pas sur du tout
A+JYT
Hors ligne
de façon descendante ?
mouai.. pas sur
// class Zend_Controller_Action_HelperBroker_PriorityStack public function __get($helperName) { if (!array_key_exists($helperName, $this->_helpersByNameRef)) { return false; } return $this->_helpersByNameRef[$helperName]; }
C'est au moment du push (ou offsetSet) que l'offset (ou priorité) semble utilisé.
if (array_key_exists($priority, $this->_helpersByPriority)) { $priority = $this->getNextFreeHigherPriority($priority); // ensures LIFO trigger_error("A helper with the same priority already exists, reassigning to $priority", E_USER_WARNING); }
Il est vrai que c'est "bizarre bizarre"
Dernière modification par nORKy (20-01-2009 15:09:31)
Hors ligne