我无法理解有关给定<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>
Run Code Online (Sandbox Code Playgroud)
我发现没有人对此有过任何经验,这让我感到非常惊讶.Phing是用PHP代替Java的'ANT'构建工具的实现.对于缺乏简单而强大的部署工具的PHP开发人员来说,它非常有用.Java能够将自包含的Web项目打包到单个文件中,或者将多个Web项目文件打包成更大的文件,这是一项了不起的功能.ANT或Phing并没有让PHP达到这一点,但它在正确的方向上迈出了明确的一步,并且比GNU Make曾经或将要更容易理解和使用.
小智 6
根据Phing文档:
<或>元素没有任何属性,并且接受任意数量的条件作为嵌套元素.如果至少有一个包含的条件是条件,则条件将按照它们在构建文件中指定的顺序进行评估.
起初可能听起来很混乱,特别是没有方便的例子,但要注意的关键词是"接受任意数量的条件作为嵌套元素".如果您尝试使用以下构建片段,则应该很容易实现如何使用<或>和<和>条件:
<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 />
Run Code Online (Sandbox Code Playgroud)