Benim Symfony 1.4 (Doktrin) formları işleme yardımcı PHP 5.3 'ın class_alias kullanıyorum. Ben birden çok form sayfaları işlemek için tek bir eylemi kullanabilirsiniz ama kullanmak için bir form sınıf seçmek için bir switch deyimi kullanarak.
public function executeEdit(sfWebRequest $request) {
switch($request->getParameter('page')) {
case 'page-1':
class_alias('MyFormPage1Form', 'FormAlias');
break;
...
}
$this->form = new FormAlias($obj);
}
Bu web sitesinde gezinirken zekice çalışır, ama benim fonksiyonel testler başarısız, çünkü bir sayfa çok gibi, birden fazla yüklendiğinde:
$browser->info('1 - Edit Form Page 1')->
get('/myforms/edit')->
with('response')->begin()->
isStatusCode(200)->
end()->
get('/myforms/edit')->
with('response')->begin()->
isStatusCode(200)->
end();
Ben aşağıdaki hata ile, ikinci isteği için bir 500 yanıtı alıyorum:
son isteği yakalanmamış istisna RuntimeException attı:.. PHP / .. bir uyarı hatası gönderilen / apps / frontend / modules / .. / eylemler / actions.class.php hattı 225 (sınıf FormAlias Redeclare)
Bu çok zor (genellikle geri kendileri göndermek) form tabanlı gönderimleri test yapar.
Presumably this is because Symfony's tester hasn't cleared the throughput in the same way. Is there a way to 'unalias' or otherwise allow this sort of redeclaration?