If you're interested in how a Plone package works find the configure.zcml and it will lead you from there.
A Fancy but Simple Example - Collective.Multimail
The collective.multimail add-on is described as follows "Allows you to use more than one mailhost. Email is filtered by rules which determine which mailhost to send a particular email to."It takes advantage of an additional add-on called "collective.monkeypatcher" to extend/patch the behaviour of the "mailHost" email utility provided by Plone.
Read it for yourself and see if it makes sense.
Line 5 an additional namespace is registered called "monkey".
Line 23-29 the utility is used to "patche" the original "Products.MailHost.MailHost.MailBase" > "send" with its own "patch.send".
. . You can view the file in context at: https://github.com/collective/collective.multimail/blob/master/src/collective/multimail/configure.zcml
This examples shows the power of ZCML and also how it is possible to quickly understand how a the parts of a system work together by simply reading the ZCML file. Stay tuned, there's more to say about this ZCML thing.
Final Notes
Just to wrap things up, there really is nothing about ZCML that makes it a Python technology. It stands for the Zope Configuration Markup Language and it is used for (gasp) configuring things (in fact motivated programmers have developed component style implementations in other languages such as Ruby.).
No comments:
Post a Comment