Philipp von Weitershausen wrote: > Hanno Schlichting wrote: >> Log message for revision 80945: >> Moved two implements declarations from Five into the proper classes. > > 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. > A sensible step forward would be to make HTTPRequest a full > IBrowserRequest (we're getting there). As for ObjectManager, I think > IContainer implies a couple of semantics (such as unicode names, the > sending of events, etc.) that we should look closer at before deciding. All sounds fine as next steps, hopefully someone is willing to put some work into it. My main motivation besides making things more easily discoverable was speed increase. For some reason five:implements or classImplements is the slowest of all CA actions, when combined with complex classes. Moving these two statements to the classes themselves, made them take just the 75th fraction of time then before. Hanno _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )