2009年3月5日星期四

Re: [fw-mvc] postDispatch() runs after _foward

well that actually doesn't work for what we're trying to do. Once
inside of dispatchLoopShutdown, you can't add anything to the view
render anymore as the view rendering is already complete. So for now
we're checking $request->isDispatched() inside of the postDispatch() hook.

anyhow, our issue is solved. however whether postDispatch should be
called when dispatched flag is false is still somewhat likely to cause
confusions.

Yi Tang wrote:
> ah, excellent point. thanks.
>
> Hector Virgen wrote:
>> Maybe you should be using the dispatchLoopShutdown() hook if you want
>> code
>> to run at the end of the dispatch loop.
>>
>> -Hector
>>
>>
>> On Thu, Mar 5, 2009 at 9:15 AM, Yi Tang <ytang@mbira.com> wrote:
>>
>>
>>> well then, don't you think it's more logical to at least not trigger
>>> postDispatch() until the dispatch loop is complete? "postDispatch"
>>> gives the
>>> connotation that it'll only run after the dispatch loop is complete.
>>>
>>> Matthew Weier O'Phinney wrote:
>>>
>>> -- Yi Tang <ytang@mbira.com> <ytang@mbira.com> wrote
>>> (on Wednesday, 04 March 2009, 05:17 PM -0600):
>>>
>>>
>>> It appears the postDispatch hook of controller plugins get triggered
>>> even with _foward calls, when dispatched is still false. Is it a
>>> bug or
>>> intentional? It doesn't seem very logical for it to be intentional.
>>>
>>>
>>> Yes, it's intentional. _forward() sets the "isDispatched" flag of the
>>> request to false, and that flag is checked for as the conditional of
>>> the
>>> dispatch loop. During preDispatch(), it can be used to indicate that
>>> the
>>> current action should not be executed, but after that, it is simply
>>> used
>>> to hint to the dispatch loop that an additional action needs to be
>>> taken.
>>>
>>>
>>>
>>>
>>>
>>
>>
>

没有评论: