[Catalyst] Re: $c->visit without calling end()
Bill Moseley
moseley at hank.org
Mon Nov 15 18:46:18 GMT 2010
On Mon, Nov 15, 2010 at 9:26 AM, Bill Crawford
<billcrawford1970 at gmail.com>wrote:
> > No, `forward` does not do a full redispatch. Most importantly,
> > if you=92re using chains in your app, then `visit` will walk the
> > entire chain to the action you passed and call those actions
> > (as well as all the `begin` and `auto` actions along the way),
> > while `forward` will only call the action itself.
>
> Erm, he was asking for something that doesn't "do a full dispatch" ?
>
There's two difference with calling forward. $c->forward does not use
passed-in captures, and it doesn't run:
$action =3D $c->dispatcher->expand_action($action);
which, IIRC, turns an action into a chain of actions. I haven't looked at
in in quite some time so probably worth looking at the source.
So, $c->visit will run through the chain but also runs auto and end.
$c->forward just executes the action w/o auto and end, but if the action is
part of a chain and expand_action has not been run then it won't run the
chain. Seem right?
What's the reason that forward doesn't expand the chain and set the
captures?
-- =
Bill Moseley
moseley at hank.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20101115/41d7c=
786/attachment.htm
More information about the Catalyst
mailing list