[Zope3-dev] Simplify Skinning ready for review / work on Reducing
the Amount of ZCML Directives
Philipp von Weitershausen
philipp at weitershausen.de
Tue Feb 21 19:15:56 EST 2006
Dominik Huber wrote:
>> Now that this proposal has been dealt with, I will turn my focus of
>> attention to
>> http://dev.zope.org/Zope3/ReducingTheAmountOfZCMLDirectives. Since my
>> initial announcement of the proposal I made some minor ammendments
>> regarding the 'content' directive. Please check them out and give me
>> feedback. I plan to start working on the implementation this week.
> I like those simplifications, but I have two little objections...
> The factory directive particularly within the class directive is very
> convenient and I use them fairly often. So I would miss that shortcut,
> because it saves a few lines of replicated code :(
> In addition the coupling of class/factory and class/implements is very
> concise and handy too, if you like to include 'external' packages into
> your application. In such a case I don't like to write an extra modul
> for the factory implementation and the class-implements-declaration. IMO
> this use case is focused to a component registration aspect and zcml
> would be the right place to cover it.
> I would vote to leave at least the class/factory and class/implements
The class/implements subdirective is debatable because putting an
interface on a class might be considered some sort of policy. So I don't
feel too strong about it.
The class/factory case however is clearly about automation. As
demonstrated in the proposal, the Python version with a simple utility
directive is only two or so lines longer and essentially moves most of
the information from ZCML to Python code. It also reuses the well-known
utility directive which makes registering factories very coherent: No
matter whether they are custom or based on a callable like a factory
from class, you just use the utility directive.
Coherence is one of the initial problems I state in the proposal so I
rather feel strongly about the class/factory case.
More information about the Zope3-dev