Je cherche une fonction native
Pour le moment, j'ai enrichi mon aide de vue messager :
public function addMessages(Array $messages)
{
foreach ($messages as $message)
{
$args = func_get_args();
array_splice($args, 0, 1, array($message));
if (is_array($message))
{
call_user_func_array(array($this,'addMessages'), $args);
continue;
}
call_user_func_array(array($this,'addMessage'), $args);
}
}
et j'ai ajouté (encore !) une couche de polymorphisme à la méthode d'appel de l'aide, en la surchargeant :
public function messager()
{
if (func_num_args() == 0) return $this;
if (is_array(func_get_arg(0))) return call_user_func_array(array($this,'addMessages'), func_get_args());
else return call_user_func_array(array($this,'addMessage'), func_get_args());
}
J'avoue que ça donne un bel air de puissance, puisque maintenant :
$this->view->messager($form->getMessages(), 'error');
Les messages sont enregistrés comme il faut, je n'ai plus qu'une ligne. Avec plusieurs modifs comme ça, j'ai réussi à réduire de moitié mon code de mon ActionController par deux, et ma vue d'action par deux, avec pour cette dernière une belle amélioration de logique.
On a des array_sum mais pas certaines fonctions qui sont quand même super utiles
