summaryrefslogtreecommitdiff
path: root/app/php/db/DBModule.php
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2016-02-26 14:59:34 +0100
committeremkael <emkael@tlen.pl>2016-02-26 14:59:34 +0100
commitb6ad16cbd2092d76d4fed03d37a77d29b5b38f00 (patch)
tree437bb2efbce01724cde04320edfb61d3e6fade93 /app/php/db/DBModule.php
parent16b4dda0f1d2df3a280b6507e12fe381ba0e8e74 (diff)
* database connection setup in PHP app
Diffstat (limited to 'app/php/db/DBModule.php')
-rw-r--r--app/php/db/DBModule.php45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/php/db/DBModule.php b/app/php/db/DBModule.php
new file mode 100644
index 0000000..3622db0
--- /dev/null
+++ b/app/php/db/DBModule.php
@@ -0,0 +1,45 @@
+<?php
+
+Prado::using('System.Data.TDataSourceConfig');
+
+class DBModule extends TDataSourceConfig {
+
+ private $_config;
+
+ public function init($xml) {
+ $this->setConnectionClass('Application.db.DBConnection');
+ $config = json_decode(file_get_contents(
+ realpath(
+ $this->getApplication()->getBasePath()
+ . DIRECTORY_SEPARATOR
+ . $this->_config
+ )
+ ));
+ $newXML = new TXmlElement('module');
+ foreach ($xml->getAttributes() as $attr => $val) {
+ $newXML->setAttribute($attr, $val);
+ }
+ $dbXML = new TXmlElement('database');
+ if (isset($config->cset)) {
+ $dbXML->setAttribute('Charset', $config->cset);
+ }
+ $dbXML->setAttribute('Username', $config->user);
+ $dbXML->setAttribute('Password', $config->pass);
+ $dbXML->setAttribute(
+ 'ConnectionString',
+ sprintf(
+ '%s:host=%s;dbname=%s',
+ $config->type, $config->host, $config->name
+ )
+ );
+ $newXML->Elements[] = $dbXML;
+ parent::init($newXML);
+ }
+
+ public function setConfig($config) {
+ $this->_config = TPropertyValue::ensureString($config);
+ }
+
+}
+
+?>