diff --git a/lib/Doctrine/Connection/Module.php b/lib/Doctrine/Connection/Module.php new file mode 100644 index 000000000..94c51ccb6 --- /dev/null +++ b/lib/Doctrine/Connection/Module.php @@ -0,0 +1,71 @@ +. + */ +/** + * Doctrine_Connection_Module + * + * @package Doctrine + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + * @author Konsta Vesterinen + */ +class Doctrine_Connection_Module { + /** + * @var Doctrine_Connection $conn Doctrine_Connection object, every connection + * module holds an instance of Doctrine_Connection + */ + protected $conn; + /** + * @var string $moduleName the name of this module + */ + protected $moduleName; + /** + * @param Doctrine_Connection $conn Doctrine_Connection object, every connection + * module holds an instance of Doctrine_Connection + */ + public function __construct(Doctrine_Connection $conn) { + $this->conn = $conn; + + $e = explode('_', get_class($this)); + + $this->moduleName = $e[1]; + } + /** + * getConnection + * returns the connection object this module uses + * + * @return Doctrine_Connection + */ + public function getConnection() { + return $this->conn; + } + /** + * getModuleName + * returns the name of this module + * + * @return string the name of this module + */ + public function getModuleName() { + return $this->moduleName; + } +} diff --git a/lib/Doctrine/Export.php b/lib/Doctrine/Export.php index 630d06e03..9ad4551d7 100644 --- a/lib/Doctrine/Export.php +++ b/lib/Doctrine/Export.php @@ -18,6 +18,7 @@ * and is licensed under the LGPL. For more information, see * . */ +Doctrine::autoload('Doctrine_Connection_Module'); /** * Doctrine_Export * @@ -29,20 +30,7 @@ * @since 1.0 * @version $Revision$ */ -class Doctrine_Export { - /** - * @var Doctrine_Connection $conn Doctrine_Connection object - */ - private $conn; - /** - * @var mixed $dbh the database handler (either PDO or Doctrine_Db object) - */ - private $dbh; - - public function __construct($conn) { - $this->conn = $conn; - $this->dbh = $conn->getDBH(); - } +class Doctrine_Export extends Doctrine_Connection_Module { /** * drop an existing database * diff --git a/lib/Doctrine/Export/Pgsql.php b/lib/Doctrine/Export/Pgsql.php index 0c1fb5ca4..707eec104 100644 --- a/lib/Doctrine/Export/Pgsql.php +++ b/lib/Doctrine/Export/Pgsql.php @@ -22,15 +22,15 @@ Doctrine::autoload('Doctrine_Export'); /** * Doctrine_Export_Pgsql * - * @package Doctrine - * @author Konsta Vesterinen + * @package Doctrine + * @author Konsta Vesterinen * @author Lukas Smith (PEAR MDB2 library) - * @license http://www.opensource.org/licenses/lgpl-license.php LGPL - * @category Object Relational Mapping - * @link www.phpdoctrine.com - * @since 1.0 - * @version $Revision$ - */ + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @category Object Relational Mapping + * @link www.phpdoctrine.com + * @since 1.0 + * @version $Revision$ + */ class Doctrine_Export_Pgsql extends Doctrine_Export { /** * create a new database @@ -41,7 +41,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export { */ public function createDatabase($name) { $query = 'CREATE DATABASE ' . $this->conn->quoteIdentifier($name); - $result = $this->dbh->query($query); + $this->conn->getDbh()->query($query); } /** * drop an existing database @@ -52,7 +52,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export { */ public function dropDatabase($name) { $query = 'DROP DATABASE ' . $this->conn->quoteIdentifier($name); - $this->dbh->query($query); + $this->conn->getDbh()->query($query); } /** * alter an existing table @@ -143,13 +143,7 @@ class Doctrine_Export_Pgsql extends Doctrine_Export { * @throws PDOException * @return boolean */ - function alterTable($name, $changes, $check) - { - $db =& $this->getDBInstance(); - if (PEAR::isError($db)) { - return $db; - } - + function alterTable($name, $changes, $check) { foreach ($changes as $change_name => $change) { switch ($change_name) { case 'add':