Ben sorgu gibi koşullu ifadeler taşıma kapasitesine sahip bir nesne oluşturmak için çalışıyorum. Bu yüzden kullanılan 'birleştirme' türüne dayalı aralarında bir bağımlılık oluşturmak için iki şart 'birleştirme' olduğunu. Şu anda aşağıdaki yöntemleri içeren basit bir nesne var:
public function addCondition ( Condition $condition, $join = null )
{
$this->conditions[] = $condition;
}
public function validate ( )
{
foreach ( $this->conditions as $condition )
{
$result = $condition->validate( );
[...]
}
}
Sorun şu ki, ben bir koşullu iki tablo arasında birleştirme gerçekleştirmek gerekiyor, bu doğrulama yönteminin dönüş değerini etkileyecektir. Fikir aşağıdaki gibi bir durum kaynağı olmasıdır:
$this->addCondition($condition_1);
$this->addCondition($condition_2, 'AND');
$this->addCondition($condition_3, 'NOT');
Bu daha sonra üçüncü durumun sonuçları geriye zincir İlk durumun sonuçlarını etkileyecek olacağını belirtmek için gerekli mantığı oluşturmak istiyorsunuz.
Örnekte, Diyelim ki:
condition_1 = Apple is Red condition_2 = Apple is Ripe condition_3 = Apple is Golden Delicious
Bu kullanma Ben, olgun kırmızı ve altın lezzetli elma, validate sonucu geçmesi için ise () yanlış olacağını varsayıyorum gerekir. Için 'birleştirme' condition_3 değildir, çünkü yöntem başarısız gerekir.
Ancak, şu anda, tüm yöntemin sonucu önceki durumuna ve buna birleştirilen bir şekilde sonucu bağlıdır kodu anlatan hiçbir yolu yoktur.
Herhangi bir yardım büyük beğeni topluyor! Teşekkürler.