クエリのような条件文を処理できるオブジェクトを作成しようとしています。これは、2つの条件を一緒に「結合」して、使用されている「結合」のタイプに基づいてそれらの間の依存関係を作成することができるためです。PHP:オブジェクト内に疑似結合メソッドを作成する
public function addCondition (Condition $condition, $join = null)
{
$this->conditions[] = $condition;
}
public function validate ()
{
foreach ($this->conditions as $condition)
{
$result = $condition->validate();
[...]
}
}
問題は、私は条件付きでvalidateメソッドの戻り値に影響を与える二つの文の間に結合を実行できるようにする必要があり、次のとおりです。私は現在、次のメソッドが含まれている単純なオブジェクトを持っています。
$this->addCondition($condition_1);
$this->addCondition($condition_2, 'AND');
$this->addCondition($condition_3, 'NOT');
これは、第3の条件の結果は後方チェーンは、最初の条件の結果に影響を与えるようにすることを指定するために必要なロジックを生成します:アイデアは、次のように条件を供給することができることです。
condition_1 = Apple is Red condition_2 = Apple is Ripe condition_3 = Apple is Golden Delicious
を、これは私は、熟した、赤と金色のおいしいリンゴ、検証の結果を渡すようにした場合は()がfalseになることを想定する必要があり使用:
は一例では、言うことができます。 condition_3の 'join'がNOTであるため、このメソッドは失敗します。
しかし、現時点では、メソッド全体の結果は前の条件の結果とそれが結合される方法によって決まることをコードに伝える方法はありません。
ご協力いただきありがとうございます。ありがとう。