-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabaseDescriptorImpl.php
More file actions
64 lines (57 loc) · 2.17 KB
/
DatabaseDescriptorImpl.php
File metadata and controls
64 lines (57 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php
/**
* Copyright 2009 Kristian Nygaard Jensen <freeduck@member.fsf.org>
* This file is part of Outletschemabuilder.
*
* Outletschemabuilder is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Outletschemabuilder is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Outletschemabuilder. If not, see <http://www.gnu.org/licenses/>.
*/
class DatabaseDescriptorImpl implements DatabaseDescriptor{
private $pdoHandler;
private function __construct(){
}
public static function createWithPdoHandler(PdoHandler $pdoHandler){
$descriptor = new DatabaseDescriptorImpl();
$descriptor->initializeWithPdoHandler($pdoHandler);
return $descriptor;
}
function initializeWithPdoHandler(PdoHandler $pdoHandler){
$this->pdoHandler = $pdoHandler;
}
function getConnectionArray(){
$connectionArray = array();
$connectionArray['dsn'] = $this->pdoHandler->getDsn();
$connectionArray['username'] = $this->pdoHandler->getUsername();
$connectionArray['password'] = $this->pdoHandler->getPassword();
return $connectionArray;
}
function getTableNames(){
$tableNames = array();
$result = $this->pdoHandler->query("SHOW TABLES");
foreach($result as $row){
$tableNames[] = $row[0];
}
return $tableNames;
}
function showCreateTable($tableName){
$this->assertTableName($tableName);
$result = $this->pdoHandler->query("SHOW CREATE TABLE ".$tableName);
$row = $result->fetch();
return $row["Create Table"];
}
protected function assertTableName($tableName){
if(strlen($tableName) == 0){
throw OutletSchemaBuilderException::createWithPattern(OutletSchemaBuilderException::ERROR_NO_FILE_NAME_GIVEN);
}
}
}