[Framework-Team] Re: suggestion for central place to import tool interfaces from

Tom Lazar lists at tomster.org
Mon Mar 12 09:26:58 UTC 2007


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 at lists.plone.org
>> http://lists.plone.org/mailman/listinfo/framework-team
>
>
> _______________________________________________
> Framework-Team mailing list
> Framework-Team at lists.plone.org
> http://lists.plone.org/mailman/listinfo/framework-team
>





More information about the Framework-Team mailing list