summaryrefslogtreecommitdiff
path: root/app/php/db/DBModule.php
diff options
context:
space:
mode:
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);
+ }
+
+}
+
+?>