[Zope3-dev] Re: Dependency cleanup: zope.traversing
Philipp von Weitershausen
philipp at weitershausen.de
Thu Aug 16 06:53:56 EDT 2007
Tres Seaver wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> Stephan Richter wrote:
>> On Wednesday 15 August 2007 08:01, Christian Theune wrote:
>>> zope.traversing has a dependency to zope.app.applicationcontroller. This
>>> is because zope.traversing implements the "etc" namespace and has a hard
>>> coded reference to "applicationcontrol" there.
>>> In the same place it also looks up site managers (in a hard coded way).
>>> As a strategy to remove this dependency we should move the etc namespace
>>> to some other place in zope.app. I did not find reasonable candidates to
>>> move this two. Bad candidates are zope.app.publisher or
>>> zope.app.publication, zope.app.applicationcontrol. A new package could
>>> be created for the etc namespace too, but I'd like to avoid that.
>> I think that zope.app.component would be a good candidate, because "etc" is
>> pretty much about accessing the local site. I know it was originally designed
>> for allowing many different non-content things to be plugged in, but this has
>> not materialized.
>> An alternative would be to get rid of ++etc++ and implement ++site++ and
>> ++control++. Now that I think about it, I actually favor this. ;-)
> Or change zope.traversing such that it looks up namespace-based stuff
> via a named utility / adapter; then packages which supply a namespace
> are not dependencies at all.
It already does. Each namespace is its own (named) adapter. That's why
Christian is suggesting to move the adapter that's responsible for
++etc++ out of zope.traversing.
I'm for zope.app.publication. It already has a few hard-coded places
where it supports the applciation controller from
zope.app.applicationcontrol, so I think it would make much sense there.
I don't think it doesn't make much sense in zope.app.component. Yes,
"++etc++site" may be about getting to the site manager of a site, but
that's just the URL representation of ISite.getSiteManager().
zope.app.component is about ISite, zope.app.publication is about how to
map objects to URLs and back. That's why it should be in
http://worldcookery.com -- Professional Zope documentation and training
More information about the Zope3-dev