[Zope-dev] traversal: different with and without a request
Philipp von Weitershausen
philipp at weitershausen.de
Wed Oct 15 14:11:14 EDT 2008
El 15 Oct 2008, a las 19:24 , Shane Hathaway escribió:
> Philipp von Weitershausen wrote:
>> First of all, its name is quite misleading. It should really be
>> called
>> 'zope.resolvepath' because it resolves TALES-like object paths. In
>> fact,
>> it's pretty much only used by the PageTemplate machinery to hook it
>> up
>> to the TALES engine (with one exception, see below). The request
>> shouldn't really be necessary for this kind of path resolution, I
>> think.
>> The conditional multi-adaption sounds like a DWIM feature that I
>> would
>> consider one of our many mistakes that we made in the beginnings of
>> our
>> using the Component Architecture.
>>
>> There is a process that actually needs the request and this process
>> is
>> what I call traversal: breaking down a URL and finding a publishable
>> object. zope.traversing has (almost) nothing to do with it, the real
>> kind of traversal happens in the publisher and facilitates
>> IPublishTraverse adapters (rather than ITraversable). The only case
>> when
>> the two kinds of "traversal" are intermingled is when ++namespaces+
>> + are
>> involved. Then IPublishTraverse-style traversal uses ITraversable
>> adapters. This has long been considered a mistake but was never
>> fixed.
>>
>> I'm not sure my explanation are helpful ;). Did I mention it was a
>> mess?
>
> This is very useful information that would have saved me a lot of
> confusion years ago. Is this written somewhere permanent, at least?
Not that I know of. The documentation of zope.traversing would
probably be a good place to put it.
More information about the Zope-Dev
mailing list