diff --git a/Doctrine/DB/EventListener.php b/Doctrine/DB/EventListener.php new file mode 100644 index 000000000..d91970b14 --- /dev/null +++ b/Doctrine/DB/EventListener.php @@ -0,0 +1,46 @@ +. + */ +/** + * Doctrine_DB_EventListener + * + * @author Konsta Vesterinen + * @license LGPL + * @package Doctrine + */ +class Doctrine_DB_EventListener implements Doctrine_DB_EventListener_Interface { + public function onPreQuery(Doctrine_DB $dbh, array $args) { } + public function onQuery(Doctrine_DB $dbh, array $args) { } + + public function onPrePrepare(Doctrine_DB $dbh, array $args) { } + public function onPrepare(Doctrine_DB $dbh, array $args) { } + + public function onPreCommit(Doctrine_DB $dbh) { } + public function onCommit(Doctrine_DB $dbh) { } + + public function onPreRollBack(Doctrine_DB $dbh) { } + public function onRollBack(Doctrine_DB $dbh) { } + + public function onPreBeginTransaction(Doctrine_DB $dbh) { } + public function onBeginTransaction(Doctrine_DB $dbh) { } + + public function onPreExecute(Doctrine_DB_Statement $stmt, array $params) { } + public function onExecute(Doctrine_DB_Statement $stmt, array $params) { } +} diff --git a/Doctrine/DB/EventListener/Chain.php b/Doctrine/DB/EventListener/Chain.php new file mode 100644 index 000000000..9b7a8192a --- /dev/null +++ b/Doctrine/DB/EventListener/Chain.php @@ -0,0 +1,97 @@ +. + */ +/** + * Doctrine_DB_EventListener + * + * @author Konsta Vesterinen + * @license LGPL + * @package Doctrine + */ +class Doctrine_DB_EventListener_Chain implements Doctrine_DB_EventListener_Interface { + private $listeners = array(); + + + public function onPreQuery(Doctrine_DB $dbh, array $args) { + foreach($this->listeners as $listener) { + $listener->onPreQuery($dbh, $args); + } + } + public function onQuery(Doctrine_DB $dbh, array $args) { + foreach($this->listeners as $listener) { + $listener->onPreQuery($dbh, $args); + } + } + + public function onPrePrepare(Doctrine_DB $dbh, array $args) { + foreach($this->listeners as $listener) { + $listener->onPrePrepare($dbh, $args); + } + } + public function onPrepare(Doctrine_DB $dbh, array $args) { + foreach($this->listeners as $listener) { + $listener->onPrepare($dbh, $args); + } + } + + public function onPreCommit(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onPreCommit($dbh); + } + } + public function onCommit(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onCommit($dbh); + } + } + + public function onPreRollBack(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onPreRollBack($dbh); + } + } + public function onRollBack(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onRollBack($dbh); + } + } + + public function onPreBeginTransaction(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onPreBeginTransaction($dbh); + } + } + public function onBeginTransaction(Doctrine_DB $dbh) { + foreach($this->listeners as $listener) { + $listener->onBeginTransaction($dbh); + } + } + + public function onPreExecute(Doctrine_DB_Statement $stmt, array $params) { + foreach($this->listeners as $listener) { + $listener->onPreExecute($stmt, $params); + } + } + public function onExecute(Doctrine_DB_Statement $stmt, array $params) { + foreach($this->listeners as $listener) { + $listener->onExecute($stmt, $params); + } + } +} diff --git a/Doctrine/DB/EventListener/Interface.php b/Doctrine/DB/EventListener/Interface.php new file mode 100644 index 000000000..709162a25 --- /dev/null +++ b/Doctrine/DB/EventListener/Interface.php @@ -0,0 +1,46 @@ +. + */ +/** + * Doctrine_DB_EventListener + * + * @author Konsta Vesterinen + * @license LGPL + * @package Doctrine + */ +interface Doctrine_DB_EventListener { + public function onPreQuery(Doctrine_DB $dbh, array $args); + public function onQuery(Doctrine_DB $dbh, array $args); + + public function onPrePrepare(Doctrine_DB $dbh, array $args); + public function onPrepare(Doctrine_DB $dbh, array $args); + + public function onPreCommit(Doctrine_DB $dbh); + public function onCommit(Doctrine_DB $dbh); + + public function onPreRollBack(Doctrine_DB $dbh); + public function onRollBack(Doctrine_DB $dbh); + + public function onPreBeginTransaction(Doctrine_DB $dbh); + public function onBeginTransaction(Doctrine_DB $dbh); + + public function onPreExecute(Doctrine_DB_Statement $stmt, array $params); + public function onExecute(Doctrine_DB_Statement $stmt, array $params); +} diff --git a/Doctrine/DB/Exception.php b/Doctrine/DB/Exception.php index e4d4d7eba..ef4004edd 100644 --- a/Doctrine/DB/Exception.php +++ b/Doctrine/DB/Exception.php @@ -1,2 +1,28 @@ . + */ +/** + * Doctrine_DB_Exception + * + * @author Konsta Vesterinen + * @license LGPL + * @package Doctrine + */ class Doctrine_DB_Exception extends Doctrine_Exception { }