Gary Poster wrote:
What if we still deprecated browser:layer but kept a redefined version of browser:skin? Then your zcml--


      <interface
          interface=".interfaces.ShanghaiSkin"
          type="zope.publisher.interfaces.browser.IBrowserSkinType"
          />

      <utility
          component=".interfaces.ShanghaiSkin"
          provides="zope.publisher.interfaces.browser.IBrowserSkinType"
          name="ShanghaiSkin"
          />

could become

<browser:skin component=".interfaces.ShanghaiSkin" name="ShanghaiSkin" />

Even though it's longer, I still like the interface/utility version. I think it really helps the developer understand what's going on and that it's not magic. The decreased brevity is of secondary concern to me.

More brainstorming: perhaps if there was a way to define ZCML in terms of other ZCML we could have the best of both worlds. If someone saw the shorter version in a config file and didn't know what it did, they could go look up another file with the definition of "browser:skin" in terms of interface and utility they could say "aha! I see how it works" and then continue using the shorter version.

I know you can do that now by looking up the Python code that implements browser:skin, but it seems too indirect to me.
--
Benji York
Senior Software Engineer
Zope Corporation
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to