From 88791f1a9cc84551c78a504f96da50c5fe3733a1 Mon Sep 17 00:00:00 2001 From: D4rk4ng3l Date: Wed, 8 Aug 2012 22:36:28 +0000 Subject: [PATCH] Fixed icon path after saving configuration. --- application/Bootstrap.php | 19 +-- application/controllers/ConfigController.php | 76 ++++++----- application/models/Config/FormValidator.php | 16 ++- application/views/helpers/GetIcon.php | 21 ++- library/Msd/Config.php | 26 ++-- library/Msd/Db.php | 130 +++++++++++++------ library/Msd/Db/Mysql.php | 10 +- library/Msd/Db/Mysqli.php | 3 +- library/Msd/Registry.php | 58 ++++++++- 9 files changed, 235 insertions(+), 124 deletions(-) diff --git a/application/Bootstrap.php b/application/Bootstrap.php index 039e67b..ea61915 100644 --- a/application/Bootstrap.php +++ b/application/Bootstrap.php @@ -3,14 +3,14 @@ * This file is part of MySQLDumper released under the GNU/GPL 2 license * http://www.mysqldumper.net * - * @package MySQLDumper - * @version SVN: $Rev$ - * @author $Author$ + * @package MySQLDumper + * @version SVN: $Rev$ + * @author $Author$ */ /** * Bootstrap class * - * @package MySQLDumper + * @package MySQLDumper */ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { @@ -24,7 +24,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap /** * Start session * - * Anyhing else is set in configs/application.ini + * Anything else is set in configs/application.ini * * @return void */ @@ -34,8 +34,8 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap Zend_Session::start(); // check if server has magic quotes enabled and normalize params - if ( (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() == 1)) { - $_POST = Bootstrap::stripslashes_deep($_POST); + if ((function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() == 1)) { + $_POST = Bootstrap::stripSlashesDeep($_POST); } } @@ -49,6 +49,7 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap { $dynamicConfig = new Msd_Config_Dynamic(); $configFile = $dynamicConfig->getParam('configFile', 'mysqldumper.ini'); + Msd_Registry::setConfigFilename($configFile); $config = new Msd_Config( 'Default', array('directories' => realpath(APPLICATION_PATH . '/../work/config')) @@ -65,9 +66,9 @@ class Bootstrap extends Zend_Application_Bootstrap_Bootstrap * * @return string|array */ - public static function stripslashes_deep($value) + public static function stripSlashesDeep($value) { - $value = is_array($value) ? array_map('Bootstrap::stripslashes_deep', $value) : stripslashes($value); + $value = is_array($value) ? array_map(array('Bootstrap', 'stripSlashesDeep'), $value) : stripslashes($value); return $value; } diff --git a/application/controllers/ConfigController.php b/application/controllers/ConfigController.php index 05e84e1..2f608b0 100644 --- a/application/controllers/ConfigController.php +++ b/application/controllers/ConfigController.php @@ -3,23 +3,24 @@ * This file is part of MySQLDumper released under the GNU/GPL 2 license * http://www.mysqldumper.net * - * @package MySQLDumper - * @subpackage Controllers - * @version SVN: $Rev$ - * @author $Author$ + * @package MySQLDumper + * @subpackage Controllers + * @version SVN: $Rev$ + * @author $Author$ */ /** - * Config Controller + * Config Controller. * - * Controller to handle actions triggered on configuration screen + * Controller to handle actions triggered on configuration screen. * - * @package MySQLDumper - * @subpackage Controllers + * @package MySQLDumper + * @subpackage Controllers */ class ConfigController extends Msd_Controller_Action { /** * Active jQuery tab Id + * * @var string */ private $_activeTab = 'tab_general'; @@ -61,7 +62,7 @@ class ConfigController extends Msd_Controller_Action $formGeneral = $this->_getSubformIni('general'); $elementTitle = $formGeneral->getElement('title'); $elementTitle->setValue( - $this->view->config->getParam('general.title') + $this->_config->getParam('general.title') ); $form->addSubForm($formGeneral, 'general'); @@ -151,10 +152,10 @@ class ConfigController extends Msd_Controller_Action $elementClass .= ' ' . 'inputError'; $formElement->setAttrib('class', $elementClass); $message[] = $formElement->getLabel() . ': ' . - $this->view->lang->translateZendId( - $messageId, - $messageText - ); + $this->view->lang->translateZendId( + $messageId, + $messageText + ); } } } @@ -184,9 +185,9 @@ class ConfigController extends Msd_Controller_Action // set dynamic actual database if it's changed in the panel if ($this->_request->isPost()) { - $actualDb = $this->view->dynamicConfig->getParam('dbActual'); + $actualDb = $this->_dynamicConfig->getParam('dbActual'); if (isset($_POST['defaultDb']) && ($_POST['defaultDb'] != $actualDb)) { - $this->view->dynamicConfig->setParam('dbActual', $_POST['defaultDb']); + $this->_dynamicConfig->setParam('dbActual', $_POST['defaultDb']); } } @@ -196,14 +197,14 @@ class ConfigController extends Msd_Controller_Action /** * Read ini file and create subform * - * @param string $subform + * @param string $subForm * * @return Zend_Form_SubForm */ - private function _getSubformIni($subform) + private function _getSubformIni($subForm) { - $subFormIni = new Zend_Config_Ini(APPLICATION_PATH . '/forms/Config/' . $subform . '.ini'); - $options = array('displayGroupPrefixPath' => $subform . '_'); + $subFormIni = new Zend_Config_Ini(APPLICATION_PATH . '/forms/Config/' . $subForm . '.ini'); + $options = array('displayGroupPrefixPath' => $subForm . '_'); return new Zend_Form_SubForm($subFormIni, $options); } @@ -214,7 +215,7 @@ class ConfigController extends Msd_Controller_Action */ public function addRecipientCcAction() { - $recipientsCc = $this->view->config->Param('email.RecipientCc'); + $recipientsCc = $this->_config->Param('email.RecipientCc'); if ($recipientsCc === null) { $recipientsCc = array(); } @@ -222,7 +223,7 @@ class ConfigController extends Msd_Controller_Action $recipientsCc[$index]['Name'] = ''; $recipientsCc[$index]['Address'] = ''; $recipientsCc = array_values($recipientsCc); - $this->view->config->setParam('email.RecipientCc', $recipientsCc); + $this->_config->setParam('email.RecipientCc', $recipientsCc); $this->_forward('index'); } @@ -233,12 +234,12 @@ class ConfigController extends Msd_Controller_Action */ public function deleteRecipientCcAction() { - $recipientToDelete = (int)$this->_request->getPost('param'); - $recipientsCc = $this->view->config->getParam('email.RecipientCc'); + $recipientToDelete = (int) $this->_request->getPost('param'); + $recipientsCc = $this->_config->getParam('email.RecipientCc'); if (isset($recipientsCc[$recipientToDelete])) { unset($recipientsCc[$recipientToDelete]); } - $this->view->config->setParam('email.RecipientCc', $recipientsCc); + $this->_config->setParam('email.RecipientCc', $recipientsCc); $this->_forward('index'); } @@ -249,7 +250,7 @@ class ConfigController extends Msd_Controller_Action */ public function addFtpConnectionAction() { - $ftpConfig = $this->view->config->getParam('ftp'); + $ftpConfig = $this->_config->getParam('ftp'); $index = 0; if (!empty($ftpConfig)) { $index = max(array_keys($ftpConfig)) + 1; @@ -266,7 +267,7 @@ class ConfigController extends Msd_Controller_Action 'dir' => "/" ); $ftpConfig[$index] = $default; - $this->view->config->setParam('ftp', $ftpConfig); + $this->_config->setParam('ftp', $ftpConfig); $this->_forward('index'); } @@ -277,14 +278,14 @@ class ConfigController extends Msd_Controller_Action */ public function deleteFtpConnectionAction() { - $index = (int)$this->_request->getPost('param'); - $ftpConfig = $this->view->config->getParam('ftp'); + $index = (int) $this->_request->getPost('param'); + $ftpConfig = $this->_config->getParam('ftp'); if (count($ftpConfig) > 1) { if (isset($ftpConfig[$index])) { unset($ftpConfig[$index]); sort($ftpConfig); } - $this->view->config->setParam('ftp', $ftpConfig); + $this->_config->setParam('ftp', $ftpConfig); } $this->_forward('index'); } @@ -301,7 +302,7 @@ class ConfigController extends Msd_Controller_Action if ($this->_request->isPost()) { $postData = $this->_request->getPost(); - $index = (int)$this->_request->getPost('param'); + $index = (int) $this->_request->getPost('param'); // fetch the required params $server = $postData['ftp_' . $index . '_server']; @@ -330,7 +331,6 @@ class ConfigController extends Msd_Controller_Action // got resource? if (!is_resource($ftpStream)) { $message = sprintf($translator->_('L_FTP_CONNECTION_ERROR'), $server, $port); - // connection ok? let's try to login } else if (!ftp_login($ftpStream, $user, $password)) { $message = sprintf($translator->_('L_FTP_LOGIN_ERROR'), $user); @@ -339,7 +339,6 @@ class ConfigController extends Msd_Controller_Action if ($mode == 'y') { ftp_pasv($ftpStream, true); } - // login ok? let's set/change the ftp upload directory } else if (!ftp_chdir($ftpStream, $directory)) { $message = sprintf($translator->_('L_CHANGEDIRERROR')); @@ -350,12 +349,11 @@ class ConfigController extends Msd_Controller_Action // ftp directory exists and chmod ok? let's test the ftp transfer with a test file } else if (!ftp_put($ftpStream, $targetFolder . $name, $filename, FTP_ASCII)) { $message = sprintf($translator->_('L_FTP_FILE_TRANSFER_ERROR'), $name); - } else { $upload = true; $message = sprintf($translator->_('L_FTP_FILE_TRANSFER_SUCCESS'), $name) - . '

' . - $translator->_('L_FTP_OK'); + . '

' . + $translator->_('L_FTP_OK'); // delete the test file after a successful transfer test if (file_exists($targetFolder . $name)) { @@ -409,7 +407,7 @@ class ConfigController extends Msd_Controller_Action foreach ($elements as $element) { $element = str_replace($group . '_', '', $element); $element = str_replace('_', '.', $element); - $value = $this->view->config->getParam($group . '.' . $element); + $value = $this->_config->getParam($group . '.' . $element); if (is_array($value)) { list (, $key) = explode('.', $element); $subForm->setDefault($element, $value[$key]); @@ -463,7 +461,7 @@ class ConfigController extends Msd_Controller_Action */ private function _addNonConfigurableConfigParams($configData) { - $configData['systemDatabases'] = $this->view->config->getParam('systemDatabases'); + $configData['systemDatabases'] = $this->_config->getParam('systemDatabases'); return $configData; } @@ -486,7 +484,7 @@ class ConfigController extends Msd_Controller_Action $smtpConfig = $emailForm->getDisplayGroup('smtpConfig'); $sendmailVisibility = false; $smtpVisibility = false; - switch ($this->view->config->getParam('email.Program')) { + switch ($this->_config->getParam('email.Program')) { case 'sendmail': $sendmailVisibility = true; break; @@ -497,7 +495,7 @@ class ConfigController extends Msd_Controller_Action $sendmailConfig->addAttribs( array( 'style' => 'display:' - . $visibilityMap[$sendmailVisibility] . ';', + . $visibilityMap[$sendmailVisibility] . ';', ) ); $smtpConfig->addAttribs( diff --git a/application/models/Config/FormValidator.php b/application/models/Config/FormValidator.php index 7b20dc2..7019acb 100644 --- a/application/models/Config/FormValidator.php +++ b/application/models/Config/FormValidator.php @@ -19,6 +19,13 @@ class Application_Model_Config_FormValidator { + /** + * Current configuration. + * + * @var Msd_Config|null + */ + protected $_config; + /** * Config data to validate * @var array @@ -32,6 +39,7 @@ class Application_Model_Config_FormValidator */ public function __construct($configData) { + $this->_config = Msd_Registry::getConfig(); // unset values we only used for form handling unset( $configData['general']['selectedTab'], @@ -51,7 +59,6 @@ class Application_Model_Config_FormValidator public function validateAndSaveConfig(Zend_View $view) { $saveConfig = false; - $config = Msd_Registry::getConfig(); $translator = Msd_Language::getInstance()->getTranslator(); $db = Msd_Db::getAdapter($this->_configData['dbuser']); try { @@ -72,13 +79,14 @@ class Application_Model_Config_FormValidator } if ($saveConfig) { - $config->setConfig($this->_configData); - $saved = $config->save(); + $this->_config->setConfig($this->_configData); + $saved = $this->_config->save(); + $this->_config->load(Msd_Registry::getConfigFilename()); if ($saved === true) { $view->popUpMessage()->addMessage( 'save-config', 'L_NOTICE', - array('L_SAVE_SUCCESS', $view->config->getParam('general.title')), + array('L_SAVE_SUCCESS', $this->_config->getParam('general.title')), array( 'modal' => true, 'dialogClass' => 'notice' diff --git a/application/views/helpers/GetIcon.php b/application/views/helpers/GetIcon.php index e6ca85c..4ad8f5c 100644 --- a/application/views/helpers/GetIcon.php +++ b/application/views/helpers/GetIcon.php @@ -15,7 +15,7 @@ * @package MySQLDumper * @subpackage View_Helpers */ -class Msd_View_Helper_GetIcon extends Zend_View_Helper_Abstract +class Msd_View_Helper_GetIcon extends Zend_View_Helper_Abstract { /** * Get html-img-tag for icon image @@ -26,7 +26,7 @@ class Msd_View_Helper_GetIcon extends Zend_View_Helper_Abstract * * @return string */ - public function getIcon($name, $title='', $size='') + public function getIcon($name, $title = '', $size = null) { static $baseUrl = false; if (!$baseUrl) { @@ -35,13 +35,13 @@ class Msd_View_Helper_GetIcon extends Zend_View_Helper_Abstract $icons = self::_getIconFilenames(); if (!isset($icons[$name])) { throw new Msd_Exception( - 'GetIcon: unknown icon \''.$name .'\' requested' + 'GetIcon: unknown icon \'' . $name . '\' requested' ); } - $img = '%s'; + $img = '%s'; $config = Msd_Registry::getConfig(); - if ($size>'') { - $img = '%s'; + if ($size !== null) { + $img = '%s'; $ret = sprintf( $img, $config->getParam('paths.iconPath'), @@ -67,20 +67,19 @@ class Msd_View_Helper_GetIcon extends Zend_View_Helper_Abstract * * @return object */ - private function _getIconFilenames () + private function _getIconFilenames() { static $icons = false; if (!$icons) { - $config = $this->view->config; - $file = realpath( + $config = $this->view->config; + $file = realpath( APPLICATION_PATH . '/../public/' . $config->getParam('paths.iconPath') . '/icon.ini' ); $iconsIni = new Zend_Config_Ini($file, 'icons'); - $icons = $iconsIni->toArray(); + $icons = $iconsIni->toArray(); unset($iconsIni); } return $icons; } - } diff --git a/library/Msd/Config.php b/library/Msd/Config.php index 3725bc9..9596bc6 100644 --- a/library/Msd/Config.php +++ b/library/Msd/Config.php @@ -3,17 +3,16 @@ * This file is part of MySQLDumper released under the GNU/GPL 2 license * http://www.mysqldumper.net * - * @package MySQLDumper - * @subpackage Config - * @version SVN: $Rev$ - * @author $Author$ + * @package MySQLDumper + * @subpackage Config + * @version SVN: $Rev$ + * @author $Author$ */ /** - * Class to handle the configuration + * Class to handle the configuration. * - * @throws Msd_Config_Exception - * @package MySQLDumper - * @subpackage Config + * @package MySQLDumper + * @subpackage Config */ class Msd_Config { @@ -46,6 +45,8 @@ class Msd_Config * @param array $handlerOptions Options for the IO-Handler. * * @throws Msd_Config_Exception + * + * @return Msd_Config */ public function __construct($ioHandler, $handlerOptions = array()) { @@ -152,7 +153,6 @@ class Msd_Config if (strpos('paramName', '.') !== false) { list($section, $paramName) = explode('.', $paramName); $this->_config[$section][$paramName] = $paramValue; - } else { $this->_config[$paramName] = $paramValue; } @@ -165,6 +165,8 @@ class Msd_Config /** * Class destructor. * If auto-save is enabled the configuration will be saved. + * + * @return void */ public function __destruct() { @@ -178,13 +180,16 @@ class Msd_Config * If auto-save is enabled the configuration is also saved. * * @param array $config New configuration. + * + * @return void */ public function setConfig($config) { - $this->_config = (array)$config; + $this->_config = (array) $config; if ($this->_autosave) { $this->save(); } + $this->_setPaths(); } /** @@ -239,5 +244,4 @@ class Msd_Config $configData = parse_ini_file($this->getParam('paths.config') . '/' . $fileName . '.ini', true); return $configData['general']['title']; } - } diff --git a/library/Msd/Db.php b/library/Msd/Db.php index 509bbce..8bca061 100644 --- a/library/Msd/Db.php +++ b/library/Msd/Db.php @@ -18,10 +18,34 @@ abstract class Msd_Db { // define result set types - const ARRAY_NUMERIC = 0; // return resultset as numeric array - const ARRAY_ASSOC = 1; // return resultset as associative array - const ARRAY_OBJECT = 2; // return resultset as array of object - const SIMPLE = 3; // return result as boolean + /** + * Return result-set as an numeric array. + * + * @const int + */ + const ARRAY_NUMERIC = 0; + + /** + * Return result-set as an associative array. + * + * @const int + */ + const ARRAY_ASSOC = 1; + + /** + * return result-set as an array of objects + * + * @const int + */ + const ARRAY_OBJECT = 2; + + /** + * Return the return value of the query function/method. + * + * @const int + */ + const SIMPLE = 3; + /** * SQL-Server * @@ -59,6 +83,7 @@ abstract class Msd_Db /** * List of databases adn default settings + * * @var array */ protected $_databases = null; @@ -103,33 +128,34 @@ abstract class Msd_Db * * @param array $options Array containing connection options * - * @return void + * @return Msd_Db */ - protected function __construct ($options) + protected function __construct($options) { - $this->_server = $options['host']; - $this->_user = $options['user']; + $this->_server = $options['host']; + $this->_user = $options['user']; $this->_password = $options['pass']; - $this->_port = (int) $options['port']; - $this->_socket = $options['socket']; + $this->_port = (int) $options['port']; + $this->_socket = $options['socket']; } + /** * Create database adapter * * @param array $options Connection options * @param boolean $forceMysql Whether to force the use of MySQL * - * @return MsdDbFactory + * @return Msd_Db_MysqlCommon */ public static function getAdapter($options = null, $forceMysql = false) { if ($options === null) { - $config = Msd_Registry::getConfig(); + $config = Msd_Registry::getConfig(); $options = array( - 'host' => $config->getParam('dbuser.host'), - 'user' => $config->getParam('dbuser.user'), - 'pass' => $config->getParam('dbuser.pass'), - 'port' => (int) $config->getParam('dbuser.port'), + 'host' => $config->getParam('dbuser.host'), + 'user' => $config->getParam('dbuser.user'), + 'pass' => $config->getParam('dbuser.pass'), + 'port' => (int) $config->getParam('dbuser.port'), 'socket' => $config->getParam('dbuser.socket'), ); } @@ -147,31 +173,36 @@ abstract class Msd_Db * * @return bool if connection is successfull * */ - abstract protected function _dbConnect (); + abstract protected function _dbConnect(); + /** * Get selected database * * @return string */ - abstract public function getSelectedDb (); + abstract public function getSelectedDb(); + /** * Get version nr of sql server * * @return string */ - abstract public function getServerInfo (); + abstract public function getServerInfo(); + /** * Get version nr of sql client * * @return string */ - abstract public function getClientInfo (); + abstract public function getClientInfo(); + /** * Get all known character sets of this SQL-Server. * * @return array */ - abstract public function getCharsets (); + abstract public function getCharsets(); + /** * Set character set of the MySQL-connection. * @@ -179,12 +210,14 @@ abstract class Msd_Db * Throw Exception on failure. * * @param string $charset + * * @throws Exception * * @return string */ - abstract public function setConnectionCharset ( - $charset = 'utf8'); + abstract public function setConnectionCharset( + $charset = 'utf8'); + /** * Get list of databases * @@ -194,36 +227,39 @@ abstract class Msd_Db * * @return array */ - abstract public function getDatabases (); + abstract public function getDatabases(); + /** * Select the given database to use it as the target for following queries. * * Returns true if selection was succesfull otherwise false. * * @throws Exception + * * @param string $database * * @return bool */ - abstract public function selectDb ($database); + abstract public function selectDb($database); + /** * Execute a query and set _resultHandle * * If $getRows is true alls rows are fetched and returned * * @param string $query The query to execute - * @param const $kind Type of result set + * @param int $kind Type of result set * @param boolean $getRows Whether to fetch all rows and return them * * @return boolean|array */ - abstract public function query ($query, - $kind = self::ARRAY_OBJECT, $getRows = true); + abstract public function query($query, + $kind = self::ARRAY_OBJECT, $getRows = true); /** * Get next row from result set * - * @param const $kind + * @param int $kind * * @return array|object */ @@ -236,7 +272,8 @@ abstract class Msd_Db * * @return array */ - abstract public function getTables ($dbName); + abstract public function getTables($dbName); + /** * Gets extended table information for one or all tables * @@ -244,16 +281,19 @@ abstract class Msd_Db * * @return array */ - abstract public function getTableStatus ($table = false); + abstract public function getTableStatus($table = false); + /** * Returns the CREATE Statement of a table. * * @throws Exception + * * @param string $table Get CREATE-Statement for this table * * @return string Create statement */ - abstract public function getTableCreate ($table); + abstract public function getTableCreate($table); + /** * Gets the full description of all columns of a table * @@ -263,19 +303,23 @@ abstract class Msd_Db * * @return array */ - abstract public function getTableColumns ($table); + abstract public function getTableColumns($table); + /** * Gets the number of affected rows of the last query * * @return int */ - abstract public function getAffectedRows (); + abstract public function getAffectedRows(); + /** * Gets the servers variables * * @return array */ - abstract public function getVariables (); + + abstract public function getVariables(); + /** * Escape a value for inserting it in query * @@ -283,7 +327,8 @@ abstract class Msd_Db * * @return string */ - abstract public function escape ($val); + abstract public function escape($val); + /** * Optimize a table. Returns true on success or MySQL-Error. * @@ -291,7 +336,9 @@ abstract class Msd_Db * * @return string|bool Returned optimize message or false on error */ - abstract public function optimizeTable ($table); + + abstract public function optimizeTable($table); + /** * Creates a new database with the given name, charackter set and collation. * @@ -308,6 +355,7 @@ abstract class Msd_Db $databaseCharset = '', $databaseCollation = '' ); + /** * Retrieves the collations from information schema. * @@ -316,6 +364,7 @@ abstract class Msd_Db * @return array */ abstract public function getCollations($charsetName = null); + /** * Retrieves the default collation for the charset or the given charset. * @@ -324,22 +373,25 @@ abstract class Msd_Db * @return array|string */ abstract public function getDefaultCollations($charsetName = null); + /** * Retrieves the last MySQL error. * * @return array */ abstract public function getLastError(); + /** * Handles a SQL-Error * * @param string $errmsg * @param int $errno - * @throws MsdEception + * + * @throws Msd_Exception * * @return void */ - public function sqlError ($errmsg, $errno) + public function sqlError($errmsg, $errno) { throw new Msd_Exception($errmsg, $errno); } diff --git a/library/Msd/Db/Mysql.php b/library/Msd/Db/Mysql.php index d753469..46a9a9b 100644 --- a/library/Msd/Db/Mysql.php +++ b/library/Msd/Db/Mysql.php @@ -148,7 +148,7 @@ class Msd_Db_Mysql extends Msd_Db_MysqlCommon * is returned. * * @param string $query The query to execute - * @param const $kind Type of result set + * @param int $kind Type of result set * @param boolean $getRows Wether to fetch all rows and return them * * @return boolean|array @@ -175,6 +175,8 @@ class Msd_Db_Mysql extends Msd_Db_MysqlCommon $this->_resultHandle = null; return $ret; } + + return true; } /** @@ -182,7 +184,7 @@ class Msd_Db_Mysql extends Msd_Db_MysqlCommon * * Can be used to walk through result sets. * - * @param const $kind + * @param int $kind * * @return array|object */ @@ -199,6 +201,8 @@ class Msd_Db_Mysql extends Msd_Db_MysqlCommon case self::ARRAY_ASSOC: return mysql_fetch_array($this->_resultHandle, MYSQL_ASSOC); } + + return false; } /** @@ -228,7 +232,7 @@ class Msd_Db_Mysql extends Msd_Db_MysqlCommon /** * Retrieves the last MySQL error. * - * @return void + * @return array */ public function getLastError() { diff --git a/library/Msd/Db/Mysqli.php b/library/Msd/Db/Mysqli.php index 00dbf05..a35ae89 100644 --- a/library/Msd/Db/Mysqli.php +++ b/library/Msd/Db/Mysqli.php @@ -161,8 +161,7 @@ class Msd_Db_Mysqli extends Msd_Db_MysqlCommon $this->_getHandle()->errno ); } - if (!$this->_resultHandle instanceof mysqli_result - || $kind === self::SIMPLE) { + if (!$this->_resultHandle instanceof mysqli_result || $kind === self::SIMPLE) { return $this->_resultHandle; } // return result set? diff --git a/library/Msd/Registry.php b/library/Msd/Registry.php index c9a9fe2..3312ee4 100644 --- a/library/Msd/Registry.php +++ b/library/Msd/Registry.php @@ -16,6 +16,27 @@ */ class Msd_Registry extends Zend_Registry { + /** + * Key for the configuration filename. This is used inside the registry. + * + * @const string + */ + const CONFIG_FILENAME_KEY = '_configFilename'; + + /** + * Key for the dynamic configuration. This is used inside the registry. + * + * @const string + */ + const DYNAMIC_CONFIG_KEY = '_dynamic'; + + /** + * Key for the configuration. This is used inside the registry. + * + * @const string + */ + const CONFIG_KEY = '_config'; + /** * Returns the config instance if it has been registered, returns null otherwise. * @@ -23,8 +44,8 @@ class Msd_Registry extends Zend_Registry */ public static function getConfig() { - if (self::isRegistered('_config')) { - return self::get('_config'); + if (self::isRegistered(self::CONFIG_KEY)) { + return self::get(self::CONFIG_KEY); } return null; @@ -41,7 +62,7 @@ class Msd_Registry extends Zend_Registry */ public static function setConfig(Msd_Config $config) { - self::set('_config', $config); + self::set(self::CONFIG_KEY . '', $config); } /** @@ -53,8 +74,8 @@ class Msd_Registry extends Zend_Registry */ public static function getDynamicConfig() { - if (self::isRegistered('_dynamic')) { - return self::get('_dynamic'); + if (self::isRegistered(self::DYNAMIC_CONFIG_KEY)) { + return self::get(self::DYNAMIC_CONFIG_KEY); } return null; @@ -71,6 +92,31 @@ class Msd_Registry extends Zend_Registry */ public static function setDynamicConfig(Msd_Config_Dynamic $config) { - self::set('_dynamic', $config); + self::set(self::DYNAMIC_CONFIG_KEY, $config); + } + + /** + * Returns the name of the current configuration file. + * + * @return string + */ + public static function getConfigFilename() + { + if (self::isRegistered(self::CONFIG_FILENAME_KEY)) { + return self::get(self::CONFIG_FILENAME_KEY); + } + return null; + } + + /** + * Sets the name of the current configuration file. + * + * @param string $configFilename Name of configuration file. + * + * @return void + */ + public static function setConfigFilename($configFilename) + { + self::set(self::CONFIG_FILENAME_KEY, $configFilename); } }