From: Roland Häder Date: Sun, 6 Jun 2010 12:50:25 +0000 (+0000) Subject: New factory for database wrappers added, some code cosmetics X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=0ad8713146a2a556efee902375c38ef84f9d4c66;p=core.git New factory for database wrappers added, some code cosmetics --- diff --git a/.gitattributes b/.gitattributes index 8ea22955..4b72ec44 100644 --- a/.gitattributes +++ b/.gitattributes @@ -341,6 +341,8 @@ inc/classes/main/factories/.htaccess -text inc/classes/main/factories/cache/.htaccess -text inc/classes/main/factories/cache/class_CacheFactory.php -text inc/classes/main/factories/class_BaseFactory.php -text +inc/classes/main/factories/database/.htaccess -text +inc/classes/main/factories/database/class_DatabaseWrapperFactory.php -text inc/classes/main/factories/objects/.htaccess -text inc/classes/main/factories/objects/class_ObjectFactory.php -text inc/classes/main/factories/registry/.htaccess -text diff --git a/inc/classes/main/factories/cache/class_CacheFactory.php b/inc/classes/main/factories/cache/class_CacheFactory.php index 4fe66131..2891a17c 100644 --- a/inc/classes/main/factories/cache/class_CacheFactory.php +++ b/inc/classes/main/factories/cache/class_CacheFactory.php @@ -47,7 +47,7 @@ class CacheFactory extends BaseFactory { if (is_null(self::$selfInstance)) { // Set a new one self::$selfInstance = new CacheFactory(); - } + } // END - if // Return the instance return self::$selfInstance; diff --git a/inc/classes/main/factories/database/.htaccess b/inc/classes/main/factories/database/.htaccess new file mode 100644 index 00000000..3a428827 --- /dev/null +++ b/inc/classes/main/factories/database/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/classes/main/factories/database/class_DatabaseWrapperFactory.php b/inc/classes/main/factories/database/class_DatabaseWrapperFactory.php new file mode 100644 index 00000000..190bb08b --- /dev/null +++ b/inc/classes/main/factories/database/class_DatabaseWrapperFactory.php @@ -0,0 +1,64 @@ + + * @version 0.0.0 + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009, 2010 Hub Developer Team + * @license GNU GPL 3.0 or any newer version + * @link http://www.ship-simu.org + * + * This program 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. + * + * This program 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 this program. If not, see . + */ +class DatabaseWrapperFactory extends ObjectFactory { + /** + * Returns a singleton socket registry instance. If an instance is found in + * the registry it will be returned, else a new instance is created and + * stored in the same registry entry. + * + * @return $wrapperInstance A database wrapper instance + */ + public static final function createWrapperByConfiguredName ($wrapperName) { + // Get registry instance + $registryInstance = Registry::getRegistry(); + + // Do we have an instance in the registry? + if ($registryInstance->instanceExists($wrapperName)) { + // Then use this instance + $wrapperInstance = $registryInstance->getInstance($wrapperName); + } else { + // Get the registry instance + $wrapperInstance = ObjectFactory::createObjectByConfiguredName($wrapperName); + + // Set the instance in registry for further use + $registryInstance->addInstance($wrapperName, $wrapperInstance); + } + + // Return the instance + return $wrapperInstance; + } + + /** + * Protected constructor + * + * @return void + */ + protected function __construct () { + // Call parent constructor + parent::__construct(__CLASS__); + } +} + +// [EOF] +?> diff --git a/inc/classes/main/factories/registry/class_SocketRegistryFactory.php b/inc/classes/main/factories/registry/class_SocketRegistryFactory.php index 9a716308..f9eff0c9 100644 --- a/inc/classes/main/factories/registry/class_SocketRegistryFactory.php +++ b/inc/classes/main/factories/registry/class_SocketRegistryFactory.php @@ -30,16 +30,19 @@ class SocketRegistryFactory extends ObjectFactory { * @return $packageInstance A socket registry instance */ public static final function createSocketRegistryInstance () { + // Get registry instance + $registryInstance = Registry::getRegistry(); + // Do we have an instance in the registry? - if (Registry::getRegistry()->instanceExists('socket_registry')) { + if ($registryInstance->instanceExists('socket_registry')) { // Then use this instance - $packageInstance = Registry::getRegistry()->getInstance('socket_registry'); + $packageInstance = $registryInstance->getInstance('socket_registry'); } else { // Get the registry instance $packageInstance = ObjectFactory::createObjectByConfiguredName('socket_registry_class'); // Set the instance in registry for further use - Registry::getRegistry()->addInstance('socket_registry', $packageInstance); + $registryInstance->addInstance('socket_registry', $packageInstance); } // Return the instance @@ -56,4 +59,6 @@ class SocketRegistryFactory extends ObjectFactory { parent::__construct(__CLASS__); } } + +// [EOF] ?>