commit 0c9c46de0a9b2b6e076a9562d59aa4ecf1c77f98
parent 3dff4d540ff54ed368f277321c3188e7fd529563
Author: Felicitus <felicitus@felicitus.org>
Date: Fri, 23 Dec 2011 04:13:43 +0100
Refactored database settings to include all database types which are supported by doctrine
Diffstat:
2 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/config.php.template b/config.php.template
@@ -24,9 +24,17 @@ Configuration::setOption("partkeepr.database.hostname", "localhost");
Configuration::setOption("partkeepr.database.dbname", "partkeepr");
/**
- * Specifies the MySQL database port
+ * Specifies the database port.
+ * Doesn't need to be specified. "null" specifies the default port.
*/
-Configuration::setOption("partkeepr.database.mysql_port", 3306);
+Configuration::setOption("partkeepr.database.port", null);
+
+/**
+ * Specifies the MySQL unix socket to use
+ */
+Configuration::setOption("partkeepr.database.mysql_socket", null);
+
+
/**
* Specifies the database driver.
diff --git a/src/backend/de/RaumZeitLabor/PartKeepr/PartKeepr.php b/src/backend/de/RaumZeitLabor/PartKeepr/PartKeepr.php
@@ -138,15 +138,28 @@ class PartKeepr {
switch ($driver) {
case "pdo_mysql":
- $connectionOptions["driver"] = "pdo_mysql";
+ case "pdo_pgsql":
+ case "pdo_oci":
+ case "oci8":
+ case "pdo_sqlsrv":
+ $connectionOptions["driver"] = $driver;
$connectionOptions["dbname"] = PartKeeprConfiguration::getOption("partkeepr.database.dbname", "partkeepr");
$connectionOptions["user"] = PartKeeprConfiguration::getOption("partkeepr.database.username", "partkeepr");
$connectionOptions["password"] = PartKeeprConfiguration::getOption("partkeepr.database.password", "partkeepr");
$connectionOptions["host"] = PartKeeprConfiguration::getOption("partkeepr.database.host", "localhost");
- if (PartKeeprConfiguration::getOption("partkeepr.database.mysql_port")) {
- $connectionOptions["port"] = PartKeeprConfiguration::getOption("partkeepr.database.mysql_port");
+ if (PartKeeprConfiguration::getOption("partkeepr.database.port") !== null) {
+ $connectionOptions["port"] = PartKeeprConfiguration::getOption("partkeepr.database.port");
}
+
+ if (PartKeeprConfiguration::getOption("partkeepr.database.mysql_socket", null) !== null) {
+ $connectionOptions["unix_socket"] = PartKeeprConfiguration::getOption("partkeepr.database.mysql_socket");
+ }
+ break;
+ case "pdo_sqlite":
+ $connectionOptions["user"] = PartKeeprConfiguration::getOption("partkeepr.database.username", "partkeepr");
+ $connectionOptions["password"] = PartKeeprConfiguration::getOption("partkeepr.database.password", "partkeepr");
+ $connectionOptions["path"] = PartKeeprConfiguration::getOption("partkeepr.database.sqlite_path", PartKeepr::getRootDirectory() . "/data/partkeepr.sqlite");
break;
default:
throw new \Exception(sprintf("Unknown driver %s", $driver));
@@ -163,6 +176,10 @@ class PartKeepr {
return self::getEntityManager();
}
+ public static function getRootDirectory () {
+ return dirname(dirname(dirname(dirname(dirname(__DIR__)))));
+ }
+
/**
* Returns the EntityManager.
* @return Doctrine\ORM\EntityManager The EntityManager