跳转到主要内容

提供了一种标记适配器规范为区分符的正式化方法。

项目描述

概述

z3c.discriminator提供了一种正式化方法,用于将适配器规范标记为区分符,这意味着它们仅用于适配器查找,而不用于实例化。

使用z3c.discriminator

要在提供适配器调用中将一个或多个接口标记为区分符,只需用“区分符”方法包装您的接口即可

>>> from z3c.discriminator import discriminator
>>> provideAdapter(MyAdapter, (IFoo, discriminator(IBar)))

在Zope配置文件中执行相同操作,请在点分路径前加一个短横线,如下所示

<adapter for=”IFoo -IBar” factory=”some.package.YourFactory” />

请注意,声明中的任何接口都可以被指定为区分符;它们不需要以任何特定的顺序出现。

在您的工厂定义中,只需要求与非区分符规范对应的参数即可,例如

class GetsOnlyFoo(object)
def __init__(self, foo)

-或-

def gets_only_bar(bar)

变更日志

版本 0.2 - 2007年11月26日

  • 通过修补全局适配器注册和GlobalObject配置字段,现在在全球范围内引入了区分符机制。

    现在,“区分符”方法返回一个在所有方面都与区分符接口相等,但标记为区分符的接口。

    测试套件已通过包括来自zope.component的整个测试套件而扩展。[malthe]

版本 0.1 - 2007年11月23日

  • 首次公开发布 [malthe]

支持