From 94e94e0a8566f23d16658a04c55b0bbfdd6689aa Mon Sep 17 00:00:00 2001 From: "godzilla80@gmx.net" <> Date: Sun, 14 Feb 2010 01:22:57 +0000 Subject: Merge Branches & Trunk /trunk:r2680,2692,2707-2736 /branches/3.1:r2682-2686,2694-2702,2705,2738-2762 --- framework/Data/SqlMap/TSqlMapConfig.php | 43 +++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'framework/Data/SqlMap/TSqlMapConfig.php') diff --git a/framework/Data/SqlMap/TSqlMapConfig.php b/framework/Data/SqlMap/TSqlMapConfig.php index c57ab40e..c5f06ab8 100644 --- a/framework/Data/SqlMap/TSqlMapConfig.php +++ b/framework/Data/SqlMap/TSqlMapConfig.php @@ -52,6 +52,31 @@ class TSqlMapConfig extends TDataSourceConfig } } + /** + * Create and configure the data mapper using sqlmap configuration file. + * Or if cache is enabled and manager already cached load from cache. + * If cache is enabled, the data mapper instance is cached. + * + * @return TSqlMapManager SqlMap manager instance + * @since 3.1.7 + */ + public function getSqlMapManager() { + Prado::using('System.Data.SqlMap.TSqlMapManager'); + if(($manager = $this->loadCachedSqlMapManager())===null) + { + $manager = new TSqlMapManager($this->getDbConnection()); + if(strlen($file=$this->getConfigFile()) > 0) + { + $manager->configureXml($file); + $this->cacheSqlMapManager($manager); + } + } + elseif($this->getConnectionID() !== '') { + $manager->setDbConnection($this->getDbConnection()); + } + return $manager; + } + /** * Saves the current SqlMap manager to cache. * @return boolean true if SqlMap manager was cached, false otherwise. @@ -87,6 +112,7 @@ class TSqlMapConfig extends TDataSourceConfig return $manager; } } + return null; } /** @@ -134,26 +160,11 @@ class TSqlMapConfig extends TDataSourceConfig } /** - * Configure the data mapper using sqlmap configuration file. - * If cache is enabled, the data mapper instance is cached. * @return TSqlMapGateway SqlMap gateway instance. */ protected function createSqlMapGateway() { - Prado::using('System.Data.SqlMap.TSqlMapManager'); - if(($manager = $this->loadCachedSqlMapManager())===null) - { - $manager = new TSqlMapManager($this->getDbConnection()); - if(strlen($file=$this->getConfigFile()) > 0) - { - $manager->configureXml($file); - $this->cacheSqlMapManager($manager); - } - } - else { - $manager->setDbConnection($this->getDbConnection()); - } - return $manager->getSqlmapGateway(); + return $this->getSqlMapManager()->getSqlmapGateway(); } /** -- cgit v1.2.3