From f19a17b02be49644fa9b5994de4a8f5e157b207e Mon Sep 17 00:00:00 2001 From: zYne Date: Mon, 25 Sep 2006 21:16:08 +0000 Subject: [PATCH] added datadict mysql driver, fixes #114 Ticket: 114 --- Doctrine/DataDict/Mysql.php | 154 ++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 Doctrine/DataDict/Mysql.php diff --git a/Doctrine/DataDict/Mysql.php b/Doctrine/DataDict/Mysql.php new file mode 100644 index 000000000..cee14e62e --- /dev/null +++ b/Doctrine/DataDict/Mysql.php @@ -0,0 +1,154 @@ +. + */ + +/** + * @package Doctrine + * @url http://www.phpdoctrine.com + * @license http://www.opensource.org/licenses/lgpl-license.php LGPL + * @author Konsta Vesterinen + * @version $Id$ + */ + +class Doctrine_DataDict_Mysql extends Doctrine_DataDict { + /** + * lists all databases + * + * @return array + */ + public function listDatabases() { + + } + /** + * lists all availible database functions + * + * @return array + */ + public function listFunctions() { + + } + /** + * lists all database triggers + * + * @param string|null $database + * @return array + */ + public function listTriggers($database = null) { + + } + /** + * lists all database sequences + * + * @param string|null $database + * @return array + */ + public function listSequences($database = null) { + + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableConstraints($table) { + + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableColumns($table) { + $sql = "DESCRIBE $table"; + $result = $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); + $description = array(); + foreach ($result as $key => $val) { + $description[$val['field']] = array( + 'name' => $val['field'], + 'type' => $val['type'], + 'primary' => (strtolower($val['key']) == 'pri'), + 'default' => $val['default'], + 'notnull' => (bool) ($val['null'] != 'YES'), + + ); + $columns[$val['field']] = new Doctrine_Schema_Column($description); + } + + + return $columns; + } + /** + * lists table constraints + * + * @param string $table database table name + * @return array + */ + public function listTableIndexes($table) { + + } + /** + * lists tables + * + * @param string|null $database + * @return array + */ + public function listTables($database = null) { + $sql = "SHOW TABLES"; + + return $this->dbh->query($sql)->fetchAll(PDO::FETCH_ASSOC); + } + /** + * lists table triggers + * + * @param string $table database table name + * @return array + */ + public function listTableTriggers($table) { + + } + /** + * lists table views + * + * @param string $table database table name + * @return array + */ + public function listTableViews($table) { + + } + /** + * lists database users + * + * @return array + */ + public function listUsers() { + + } + /** + * lists database views + * + * @param string|null $database + * @return array + */ + public function listViews($database = null) { + + } +}