我正在尝试为所有模型创建一个记录侦听器。
在ProjectConfiguration.class.php中,我添加了:
public function configureDoctrineConnection(Doctrine_Connection $connection)
{
$connection->addRecordListener(new doctrineLogger());
}
我创建了lib / doctrineLogger.class.php
class doctrineLogger implements Doctrine_Overloadable
{
public function __call($m, $a)
{
echo 'caught event '. $m .'<br />';
}
}
但是没有发现任何事件。
当我尝试使用通用连接侦听器时:
$connection->addListener(new doctrineLogger());
...和相同的doctrineLogger类,我得到了正确的预期输出:
caught event preConnect
caught event preExec
caught event postExec
caught event postConnect
caught event prePrepare
caught event postPrepare
...
我做错了什么?我是否错误地实施了它?请帮忙,我很无能为力。我是第一次尝试使用Doctrine听众。
答案 0 :(得分:0)
addRecordListener
- 方法,继承自Doctrine_Configurable
。但是,它不能用于在连接级别添加全局记录侦听器。相反,您应该将其添加到Doctrine_Manager
- 实例:
Doctrine_Manager::getInstance()->addRecordListener(new doctrineLogger());
您可以查看有关record listeners here的参考文档。