[Zope3-dev] what is ZCML?

Lennart Regebro regebro at gmail.com
Tue Mar 14 03:42:58 EST 2006


OK, I just think I had a sort of brainwave-thingy, so I'm going to lay
it out here to see if it was a good brainwave or not:


Currently I can see three useful uses of ZCML:

1. User interface configurations, that is, everything that goes under "browser".
    Menus, pages, forms, that sort of thing.

2. Switching on/overriding tools, utilities, adapters, etc. Call it
component registration.

3. Making non-component classes into component classes.

Now, one thing we notice here is that the things in 3 is not anything
that needs to be overriden. It therefore doesn't HAVE to be in ZCML.
You can do this equally well by making small wrapper classes in
Python. Sidnei thinks this ZCML usage is good, I'm not convinced. This
is one item that can be discussed.

I also realised that what goes in my point 1 here, is what goes int
Martijns #1, and what goes in my point to, fits into Martijns #2.

So I would like to suggest that both view #1 and view #2 are equally
valid, but for different things. One thing we notice is that for
example the content directive doesn't fit vith view #2, of the leaner
and meaner ZCML. And neither is it user interface configuration. My
conclusion: It should go away.


Thoughts on that?


More information about the Zope3-dev mailing list