Bu real akıcı arabirim değildir. Ben bir yöntem yığını toparlayıp bir nesne var. Tek bir işlev çağrısı tarafından yürütülen aldığı. Ama şimdi o yöntemi yığını "devralır" başka bir sanal yöntem ekleyebilirsiniz.
Çantası kullanın: Ben nesneleri içine benim superglobal'leri sarma ediyorum. Bu bana girdi filtreleme "zorlamak" için izin verir. $ _GET Ve işbirliği basit sterilize eden yöntemler sağlar. Ve benim yeni sürümü artık atom filtre zincirleme sağlar. Örnek olarak:
$_GET->ascii->nocontrol->text["field"]
Bu bir yöntem çağrıdır. Bu açılı ayraçlar kullanır. Ama bu $_GET["field"] herhangi occourence yeniden kolaylaştırır sadece güzel bir hile. Neyse.
Şimdi zaman alanında olduğu gibi, numaralandırılmış alanları ile formları da vardır [0], alan [1], [2] alanına. > Dizi filtre yöntemi - Ben bir sanal ekledim nedeni budur. Bu toplanan yöntem yığını hijacks, ve örneğin üzerinde dolaşır kalan filtreleri Bir $ _POST dizi değeri. Örneğin $_POST->array->int["list"].
Biraz kısaltılmış uygulama:
function exec_chain ($data) {
...
while ($filtername = array_pop($this->__filter)) {
...
$data = $this->{"_$filtername"} ($data);
...
}
function _array($data) {
list($multiplex, $this->__filter) = array($this->__filter, array());
$data = (array) $data;
foreach (array_keys($data) as $i) {
$this->__filter = $multiplex;
$data[$i] = $this->exec_chain($data[$i]);
}
return $data;
}
Yöntem yığın $this->__filter listede toplandı alır. Exec_chain yukarıdaki () sadece bunun üzerinde ilk yöntem adını kaldırmak her zaman döngüler. Sanal _array işleyicisi genellikle ilk yöntemdir. Ve sadece bu yöntem yığını çaldı ve her dizi elemanı üzerinde kalan reexecutes. Tam örnek kod yukarıdaki gibi, ama sadece tekrar tekrar orijinal yöntem yığınını yeniden doldurur değil.
Bu çalışıyor. Ama bu tür kirli hissediyor. Ve ben başka bir sanal yöntem ekleyerek düşünüyorum ->xor. (YAGNI?) Sadece alanlar üzerinde yineleme, ama yerine alternatif filtreler başarılı olsaydı değerlendirmek olmaz. Örneğin $_REQUEST->array->xor->email->url["fields"]. Bir fonksiyon listesi kaçırma için daha iyi bir model var diye merak ediyorum. Benim şu anki kanca listesi ($ this-> __filter) takas zincirleme kendisini ödünç vermez. Hmm iyi aslında, -> dizi -> xor örneği aynen gibi davranmaya / yinelemek gerek olmazdı.
Yani özellikle, benim dolara array_pop ile bu-> __filter liste kullanımını () ve dışarı takas sinsi bir alternatif bulma ilgileniyorum. Bu kötü. > Yarım parçası - Bir yöntem liste yarısı kısmı beni yürütme için daha iyi bir uygulama planı var mı?