J'essaye d'écrire un assistant de vue qui appelle dynamiquement d'autres aides, et j'ai du mal à passer plus d'un argument. Le scénario suivant fonctionnera:zf2 passe plusieurs arguments dans l'appel d'aide dynamique
$helperName = "foo";
$args = "apples";
$helperResult = $this->view->$helperName($args);
Cependant, je veux faire quelque chose comme ceci:
$helperName = "bar";
$args = "apples, bananas, oranges";
$helperResult = $this->view->$helperName($args);
avec ceci:
class bar extends AbstractHelper
{
public function __invoke($arg1, $arg2, $arg)
{
...
mais il passe "apples, bananas, oranges"
-$arg1
et rien à la autres arguments.
Je ne veux pas avoir à envoyer plusieurs arguments lorsque j'appelle l'aide car les différents assistants prennent différents nombres d'arguments. Je ne veux pas écrire mes helpers pour prendre des arguments comme un tableau parce que le code dans le reste du projet appelle les helpers avec des arguments discrets.
Parfait. Dans mon cas, l'assistant reçoit '$ args' comme une chaîne séparée par des virgules, donc je ne peux pas écrire dynamiquement' $ args = array ('apple', 'bananas', 'oranges'); Cependant, la conversion du tableau est facilement réalisée avec '$ args = explode (", ", $ args);'. – jcropp