Hanno Schlichting wrote at 2007-10-22 09:43 +0200:
Philipp von Weitershausen wrote: ...
I object to this change. HTTPRequest does not really fulfil the IBrowserRequest interface, and ObjectManager isn't a real IContainer either. I understand that somebody made a mistake when they declared them as such in the early days of Five. This is the reason we can't take it back. But, at least as a sign of the fact that they're not (yet) the real deal, this declaration has remained in ZCML.
Hiding the interface declaration in some exotic place in ZCML isn't very helpful IMO. We can add a comment to the implements directive in both classes that these are not implementing the full interface, though. Five isn't just an add-on anymore but a core part of Zope2, moving things into the proper places, should make it easier for those people, who haven't followed the whole history of Five.
I often disagree with Philipp but I, too, feel it is wrong to use "implements(...)" when the class does not implement "...". All declarations should be trustable -- otherwise, you could forget about interfaces alltogether... -- Dieter