new events onConnect and onPreConnect
This commit is contained in:
parent
3c0192dbfe
commit
88bf7c1731
@ -199,6 +199,10 @@ class Doctrine_Db implements Countable, IteratorAggregate, Doctrine_Adapter_Inte
|
||||
if ($this->isConnected)
|
||||
return false;
|
||||
|
||||
$event = new Doctrine_Db_Event($this, Doctrine_Db_Event::CONNECT);
|
||||
|
||||
$this->listener->onPreConnect($event);
|
||||
|
||||
$this->dbh = new PDO($this->options['dsn'], $this->options['username'], $this->options['password']);
|
||||
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
$this->dbh->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Doctrine_Db_Statement', array($this)));
|
||||
@ -212,6 +216,8 @@ class Doctrine_Db implements Countable, IteratorAggregate, Doctrine_Adapter_Inte
|
||||
}
|
||||
|
||||
$this->isConnected = true;
|
||||
|
||||
$this->listener->onConnect($event);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,7 @@ class Doctrine_Db_Event
|
||||
const BEGIN = 5;
|
||||
const COMMIT = 6;
|
||||
const ROLLBACK = 7;
|
||||
const CONNECT = 8;
|
||||
protected $invoker;
|
||||
|
||||
protected $query;
|
||||
@ -54,8 +55,6 @@ class Doctrine_Db_Event
|
||||
$this->invoker = $invoker;
|
||||
$this->type = $type;
|
||||
$this->query = $query;
|
||||
|
||||
|
||||
}
|
||||
public function getQuery()
|
||||
{
|
||||
|
@ -31,6 +31,11 @@
|
||||
*/
|
||||
class Doctrine_Db_EventListener implements Doctrine_Db_EventListener_Interface
|
||||
{
|
||||
public function onPreConnect(Doctrine_Db_Event $event)
|
||||
{ }
|
||||
public function onConnect(Doctrine_Db_Event $event)
|
||||
{ }
|
||||
|
||||
public function onPreQuery(Doctrine_Db_Event $event)
|
||||
{ }
|
||||
public function onQuery(Doctrine_Db_Event $event)
|
||||
|
@ -67,6 +67,18 @@ class Doctrine_Db_EventListener_Chain extends Doctrine_Access implements Doctrin
|
||||
$this->listeners[$name] = $listener;
|
||||
}
|
||||
|
||||
public function onPreConnect(Doctrine_Db_Event $event)
|
||||
{
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->onPreConnect($event);
|
||||
}
|
||||
}
|
||||
public function onConnect(Doctrine_Db_Event $event)
|
||||
{
|
||||
foreach ($this->listeners as $listener) {
|
||||
$listener->onConnect($event);
|
||||
}
|
||||
}
|
||||
public function onQuery(Doctrine_Db_Event $event)
|
||||
{
|
||||
foreach ($this->listeners as $listener) {
|
||||
|
@ -26,6 +26,9 @@
|
||||
* @package Doctrine
|
||||
*/
|
||||
interface Doctrine_Db_EventListener_Interface {
|
||||
public function onPreConnect(Doctrine_Db_Event $event);
|
||||
public function onConnect(Doctrine_Db_Event $event);
|
||||
|
||||
public function onPreQuery(Doctrine_Db_Event $event);
|
||||
public function onQuery(Doctrine_Db_Event $event);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user