Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zope zcml:condition的有效条件是什么?_Zope_Zcml - Fatal编程技术网

Zope zcml:condition的有效条件是什么?

Zope zcml:condition的有效条件是什么?,zope,zcml,Zope,Zcml,ZCML可以包括以下形式的条件指令 <configure zcml:condition="installed some.python.package"> (conditional configuration directives) </configure> (条件配置指令) 条件的表达式语法是什么?“或”是允许的吗?我也总是要查这个。语法非常简单,或恐怕不是语法的一部分 从中可以看出,语法总是采用动词参数的形式,其中动词是have、not have、inst

ZCML可以包括以下形式的条件指令

<configure zcml:condition="installed some.python.package">
    (conditional configuration directives)
</configure>

(条件配置指令)

条件的表达式语法是什么?“或”是允许的吗?

我也总是要查这个。语法非常简单,
恐怕不是语法的一部分

从中可以看出,语法总是采用
动词参数的形式,其中动词是
have
not have
installed
not installed
中的一种

没有
测试已注册的功能。已注册的功能只是一个不透明的字符串,它已使用
标记注册。使用它来标记已包含的内容,而不将其绑定到特定的实现。例如:

<configure zcml:condition="have apidoc">
    <!-- only when the apidoc feature has been provided -->
</configure>
<configure zcml:condition="installed sqlalchemy"> 
    <!-- only when the sqlalchemy module can be imported -->
</configure>

我编写了一个组件,它可以根据安装的加密函数使用多种实现。对于“或”,我可能可以将相同的
放在两个zcml:condition块中,然后在第三个块中注册我的组件。谢谢那么多重条件呢?这是如何工作的?@b4oshany:没有一个工具可以在一个标签上指定多个条件。您必须找到一种嵌套标记的方法,在这些标记上放置
zcml:condition
属性(您不能在XML中的单个标记上重复属性)。我猜
zcml:condition
不支持and-condition。确切地说,这里没有布尔运算符,只有我在回答中记录的语法。