2009年11月14日星期六

Re: [fw-mvc] Chaining Hostname and REST Routes

Yeah, I've spent some time looking around between the various routes
and I'm still not quite sure what the intended behavior is. It seems
to be trying to iteratively reduce $subPath to an empty string and if,
at the end, it isn't an empty string it considers the whole chain to
not be a match. However, the setMatchedPath method never gets called
in the REST router so getMatchedPath will always return null and
therefore the Chain won't reduce $subPath. Looking at some other
routes as examples, it appears that the setMatchedPath method is only
called when the $partial parameter is true but I don't see any
comments on what the $partial parameter is for but it defaults to
false. From what I can tell, either the REST router is suppose to
implement the $partial parameter and/or call setMatchedPath or the
Chain is not correctly handling scenarios where getMatchedPath returns
null. Or it's something else entirely :-)

On Sat, Nov 14, 2009 at 7:32 PM, Kyle Spraggs <theman@spiffyjr.me> wrote:
>
>
>
> bradley.holt wrote:
>>
>> What I meant to say was, "that statement evaluates to *true* thus
>> returning *false*."
>>
>> On Sat, Nov 14, 2009 at 7:21 PM, Bradley Holt
>> <bradley.holt@foundline.com> wrote:
>>> I tracked down the problem code, but I don't know enough about how
>>> it's supposed to work to suggest a fix. The problem is with the
>>> following code in Zend_Controller_Router_Route_Chain:
>>>
>>>        if ($subPath !== '' && $subPath !== false) {
>>>            return false;
>>>        }
>>>
>>> My $subPath variable has the value "checkout/order/some-id" so that
>>> statement evaluates to false, ignoring the correct values it got from
>>> my routes. I'm going to poke around some more to see if I can
>>> understand how it's supposed to work and suggest a patch or
>>> workaround.
>>>
>>> On Sat, Nov 14, 2009 at 7:06 PM, Bradley Holt
>>> <bradley.holt@foundline.com> wrote:
>>>> Kyle,
>>>>
>>>> I've been doing some debugging as well and the only difference I've
>>>> found so far is that with a plain old REST route the pathInfo looks
>>>> like this:
>>>>
>>>> /checkout/order/some-id
>>>>
>>>> and when chained with a Hostname route it looks like this (I'm
>>>> guessing the beginning slash is getting removed by the Hostname
>>>> route):
>>>>
>>>> checkout/order/some-id
>>>>
>>>> However, from what I've seen so far this should not make any
>>>> difference at all. I'll keep digging...
>>>>
>>>> On Sat, Nov 14, 2009 at 7:00 PM, Kyle Spraggs <theman@spiffyjr.me>
>>>> wrote:
>>>>>
>>>>> I literally just sent a message out pertaining to this exact thing. I'm
>>>>> unable to get it working and I've tried tracing the steps but I'm not
>>>>> on my
>>>>> home system with the Zend Server so debugging is less than ideal at the
>>>>> moment.
>>>>>
>>>>> Perhaps someone "in the know" will step up to the plate and answer our
>>>>> questions.
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/Chaining-Hostname-and-REST-Routes-tp26354930p26355129.html
>>>>> Sent from the Zend MVC mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Bradley Holt
>>>> bradley.holt@foundline.com
>>>>
>>>
>>>
>>>
>>> --
>>> Bradley Holt
>>> bradley.holt@foundline.com
>>>
>>
>>
>>
>> --
>> Bradley Holt
>> bradley.holt@foundline.com
>>
>>
>
> I recently found the same thing and I'm unsure of a fix at this point. I can
> verify that each route is returning the proper module, controller, and array
> but breaks after chaining.
>
> --
> View this message in context: http://old.nabble.com/Chaining-Hostname-and-REST-Routes-tp26354930p26355316.html
> Sent from the Zend MVC mailing list archive at Nabble.com.
>
>

--
Bradley Holt
bradley.holt@foundline.com

没有评论: