1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect3 id="zend.controller.actionhelpers.actionstack">
<title>ActionStack</title>
<para>
L'aide <emphasis>ActionStack</emphasis> vous permet d'empiler les requêtes dans le plugin de
contrôleur frontal
<link linkend="zend.controller.plugins.standard.actionstack">ActionStack</link>, vous
aidant effectivement à créer une liste d'actions à exécuter durant la requête. Cette aide
vous permet d'ajouter des actions, soit en spécifiant de nouveaux objets de requêtes, soit
en paramétrant action / controller / module.
</para>
<note>
<title>Invoquer l'aide ActionStack initialise le plugin ActionStack</title>
<para>
L'appel de l'aide <emphasis>ActionStack</emphasis> enregistre implicitement le plugin
<emphasis>ActionStack</emphasis> - ce qui veut dire que vous n'avez pas besoin
d'enregistrer explicitement le plugin <emphasis>ActionStack</emphasis> pour utiliser
cette fonctionnalité.
</para>
</note>
<example id="zend.controller.actionhelpers.actionstack.simple">
<title>Ajouter une tâche en utilisant une action, un contrôleur et un module</title>
<para>
Souvent, il est plus simple de spécifier l'action, le contrôleur et le module (et
optionnellement des paramètres de requêtes), comme vous le feriez en appelant
<methodname>Zend_Controller_Action::_forward()</methodname> :
</para>
<programlisting language="php"><![CDATA[
class FooController extends Zend_Controller_Action
{
public function barAction()
{
// Ajoute deux actions à la pile
// Ajoute un appel à /foo/baz/bar/baz (FooController::bazAction()
// avec une variable de requête bar == baz)
$this->_helper->actionStack('baz',
'foo',
'default',
array('bar' => 'baz'));
// Ajoute un appel à /bar/bat
// (BarController::batAction())
$this->_helper->actionStack('bat', 'bar');
}
}
]]></programlisting>
</example>
<example id="zend.controller.actionhelpers.actionstack.simple2">
<title>Ajouter une tâche en utilisant un objet de requête</title>
<para>
Parfois la nature <acronym>OO</acronym> d'un objet de requête a plus de sens ;
vous pouvez alors fournir l'objet à l'aide <emphasis>ActionStack</emphasis>.
</para>
<programlisting language="php"><![CDATA[
class FooController extends Zend_Controller_Action
{
public function barAction()
{
// Ajoute deux actions à la pile
// Ajoute un appel à /foo/baz/bar/baz (FooController::bazAction()
// avec une variable de requête bar == baz)
$request = clone $this->getRequest();
// sans régler le contrôleur ou le module,
// utilise les valeurs courantes
$request->setActionName('baz')
->setParams(array('bar' => 'baz'));
$this->_helper->actionStack($request);
// Ajoute un appel à /bar/bat
// (BarController::batAction())
$request = clone $this->getRequest();
// sans régler le module, utilise la valeur courante
$request->setActionName('bat')
->setControllerName('bar');
$this->_helper->actionStack($request);
}
}
]]></programlisting>
</example>
</sect3>
|