4

<if>特定のタグの複数の条件に関するPhingのドキュメントを理解するのに問題があります。これは、タグを使用しない限り複数の条件を持つことができないことを意味しますが<and>、その使用方法の例はありません。その結果、2つのタグをネスト<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は、JavaではなくPHPでの「ANT」ビルドツールの実装です。これは、シンプルで強力なデプロイメントツールが不足していると感じているPHP開発者にとって非常に便利です。自己完結型のWebプロジェクトを単一のファイルにパッケージ化する、または複数のWebプロジェクトファイルをさらに大きなファイルにパッケージ化するJavaの機能は、驚くべき機能です。ANTまたはPhingはPHPをその時点まで到達させませんが、正しい方向への明確な一歩であり、GNU Makeがこれまでまたはこれから行うよりも、理解と使用が容易になります。

4

1 に答える 1

6

Phingのドキュメントによると:

<or> 要素には属性がなく、ネストされた要素として任意の数の条件を受け入れます。この条件は、含まれている条件の少なくとも 1 つが次の場合に true になります。条件は、ビルド ファイルで指定された順序で評価されます。

特に便利な例がないため、最初は混乱するように聞こえるかもしれませんが、注意すべきキーワードは「ネストされた要素として任意の数の条件を受け入れる」です。次のビルド スニペットを試すと、<or> および <and> 条件の使用方法を簡単に理解できるはずです。

<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 />
于 2010-03-30T15:36:34.407 に答える