我无法理解有关给定<if>
标记的多个条件的Phing文档。它意味着除非您使用<and>
标记,否则您不能拥有多个条件,但没有关于如何使用它的示例。因此,我嵌套了两个<if>
标签,但是当我知道有更好的方法时,我觉得很傻。有谁知道我如何使用<and>
标签来完成以下任务:
<if><equals arg1="${deployment.host.type}" arg2="unrestricted" /><then>
<if><equals arg1="${db.adapter}" arg2="PDO_MYSQL"/><then>
<!-- Code Here -->
</then></if>
</then></if>
我发现没有人对此有过任何经验,这让我感到非常惊讶。 Phing是用PHP代替Java的'ANT'构建工具的实现。对于缺乏简单而强大的部署工具的PHP开发人员来说,它非常有用。 Java能够将自包含的Web项目打包到单个文件中,或者将多个Web项目文件打包成更大的文件,这是一项了不起的功能。 ANT或Phing并没有让PHP达到这一点,但它在正确的方向上迈出了明确的一步,并且比GNU Make更容易理解和使用,这已经或者将会是。
答案 0 :(得分:6)
&lt;或&gt; element没有任何属性,接受任意数量的条件作为嵌套元素。如果至少有一个包含的条件是条件,则条件将按照在构建文件中指定的顺序进行评估。
起初可能听起来很混乱,特别是没有方便的例子,但要注意的关键词是“接受任意数量的条件作为嵌套元素”。如果您尝试使用以下构建代码段,则应该很容易实现如何使用&lt;或&gt;和&lt;和&gt;条件:
<if>
<or>
<equals arg1="foo" arg2="bar" />
<equals arg1="baz" arg2="baz" />
</or>
<then>
<echo message="Foo equals bar, OR baz equals baz!" />
</then>
</if>
<if>
<or>
<equals arg1="foo" arg2="bar" />
<equals arg1="baz" arg2="bam" />
</or>
<then>
<echo message="Foo equals bar, OR baz equals baz!" />
</then>
<else>
<echo message="No match to OR found." />
</else>
</if>
<fail />