[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