[Zope-dev] Re: View component registration
Philipp von Weitershausen
philipp at weitershausen.de
Wed Jun 18 22:29:04 EDT 2008
Malthe Borch wrote:
> Currently views are registered as components providing
> zope.interface.Interface; this is unfortunate since other kinds of
> components may use the same specification, namely (context, request).
>
> An example of this is ``IAbsoluteURL``; it clashes with the resources
> view*.
>
> In the words of Christian Theune: "I think it looks like one should
> never ask for adaptions to Interface."
>
> I suggest we then register views as components providing
> ``zope.component.IView``; browser views should provide
> ``zope.publisher.interfaces.browser.IBrowserView``.
IBrowserView is IMHO not the right one. Anything, including absolute_url
and standard_macros, can be a browser view. But browser views aren't
necessarily *publishable*. In other words, Zope 3 won't resolve URLs
like http://localhost:8080/standard_macros or
http://localhost:8080/absolute_url. (Zope 2 will publish such URLs which
is quite terrible).
Browser pages (as opposed to browser views) are components that *are*
publishable on the other hand. That's because they provide
IBrowserPublisher (IBrowserPage extends this interface). That's why I
think IBrowserPage is the right interface to adapt to. But perhaps it
should be something else, though either way it should be based on
IBrowserPublisher.
More information about the Zope-Dev
mailing list