[Zope3-Users] Re: Using ZCML for defining global constants ?
Baiju M
baiju.m.mail at gmail.com
Mon Sep 11 03:49:31 EDT 2006
On 9/11/06, Martin Aspeli <optilude at gmx.net> wrote:
> Andrew Groom wrote:
> > Hi there,
> >
> > I've got a few global constants that I'd like to be available to my
> > application and a .zcml file seems to be a sensible place. I'm thinking
> > of something like a .zcml file with, e.g.:
> >
> > <applicationSettings>
> > <setting name="name1" value="value1"/>
> > <setting name="name2" value="value2"/>
> > ...
> > </applicationSettings>
> >
> > This would then be available in a component as a dictionary. Is anythign
> > like this already available ?
>
> You could just use <utility>, and thereby group your constants into
> logical chunks.
>
> interfaces.py:
>
> class IDatabaseLoginOptions(Interface):
> username = Attribute()
> password = Attribute()
>
> config.py:
>
> class DatabaseLoginOptions(object):
> implements(IDatabaseLoginOptions)
> username = 'foo'
> password = 'bar'
>
> configure.zcml:
>
> <utility factory=".config.DatabaseLoginOptions" />
>
> used:
>
> opts = getUtility(IDatabaseLoginOptions)
>
> Obviously, this is a bit more work than just declaring some constants in
> ZCML, but global constants suffer the same problems whether they're
> defined in Python or XML. Parts of your application are making
> assumptions that they are there, with very specific names, which are not
> type checked.
Just added this to FAQ: http://kpug.zwiki.org/Zope3Faq
Regards,
Baiju M
More information about the Zope3-users
mailing list