for the record ;-)

+1 with raphael

and

+1 with martin re: 'polluting' the CMFPlone interface namespace

so how about just following through with andi's proposal and just use something like `CMFPlone.interfaces.helpers` etc.

i definitely want to see one(!) place for all those utilities that previously have been called with `getToolByName`! (well, actually *two*... `CMFPlone.interfaces` *and* `CMFPlone.interfaces.helpers`)

just my EUR 0.02

cheers,

tom

On Mar 12, 2007, at 10:00 AM, Raphael Ritz wrote:

Martin Aspeli schrieb:
[..]
The good news is that most CMF tools are in Products.CMFCore.interfaces; the other ones are more specific, like some of the i18n tools. I think we ought to think closely about the interfaces in PlonePAS, though.

And while we are at this: I think Andy has a point here, nevertheless.
I also feel somewhat uncomfortable when seeing things like

 tool = getToolByName(context, 'some_tool')

being replaced with

tool = getToolByInterfaceName(context, Full.dotted.path.to.the.interface.definition)

This is not only because it's more typing and it looks more ugly
but mainly because I'm afraid we will have to explain to people
over and over again what to import from where.

For one, it's simply not true that most interfaces live in CMFCore
(simply compare a CMFDefault site and an OOTB Plone site) so
we will have to educate people "yes, while this interface is from
CMFCore, this other one is from here and this one is from there"
which we didn't need to do before.

Second, people may find it confusing when looking at the
membership tool let's say. They may realize that there are
definitions in CMFCore, CMFDefault and CMFPlone (the
implementations, not the interface definition) so looking
up the membership tool they might try

tool = getToolByInterfaceName(context, Products.CMFPlone.interfaces.IMembershipTool)

while

tool = getToolByInterfaceName(context, Products.CMFCore.interfaces.IMembershipTool)

would be the right thing.

With other words, it may look like you where looking for the tool
as defined in CMFCore but you'll get the one from CMFPlone (or thatever else might be registered at the local site). For people that don't have
the big picture (yet)  - and we are talking about TTW coding here -
this might turn out to be confusing.

Frankley speaking, I never really understood why getToolByInterfaceName needs the full dotted path to the interface definition anyway. Couldn't
this utility just do what it proposes to do, namely look up by *name*
(which for me would be just 'IMembershipTool', without the path;
maybe it does and this is a non-issue then forget about this)?

Raphael

Martin

_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team


_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team



_______________________________________________
Framework-Team mailing list
Framework-Team@lists.plone.org
http://lists.plone.org/mailman/listinfo/framework-team

Reply via email to