Sen (çekirdek uzanan olmadan) sizin dinleyici olan geri parametreleri geçemiyor. Symfony çağıran biri olacak ve bir olay nesnesi geçecek. Ek bilgi gerekiyorsa, size parametrelerini kontrol edebilirsiniz başka bir yöntemi çağıran farklı bir yöntemi oluşturabilirsiniz.
$callable1 = array(new MyWriter, 'write1');
$callable2 = array(new MyWriter, 'write2'); // or $callable2 = array($callable1[0], 'write2');
$sfEventDispatcher->connect('log.write', $callable1);
$sfEventDispatcher->connect('log.write', $callable2);
Ve geri çağırma sınıf yöntemleri gibi bir şey olabilir:
class MyWriter
{
public function write($event, $num)
{
// do something
}
public function write1($event)
{
$this->write($event, 1);
}
public function write2($event)
{
$this->write($event, 2);
}
}
Alternatif olarak, yazma fonksiyonu kontrol edebilirsiniz devlet olarak hareket özellikleri oluşturabilirsiniz:
class MyWriter
{
public $state = 1;
public function write($event)
{
if ($this->state == 1) {
// do this
} else {
// do this instead
}
}
}
Bu, yerinde bir olay durumun özelliklerine bağlı olarak, yapılamadı ispat olmayabilir hangi tetiklenir önce devlet kurmak zorundayız gibi zordur:
$callable[0]->state = 2;