[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