From 5d276345aa8fc6eefed3793d59cc73ae0d0247b5 Mon Sep 17 00:00:00 2001 From: "godzilla80@gmx.net" <> Date: Sun, 10 May 2009 10:51:52 +0000 Subject: Fixed Issue #74 Introduce a new property 'InvalidFinderResult' (related new enum TActiveRecordInvalidFinderResult) to TActiveRecordConfig, TActiveRecordManager, TActiveRecord that allows to control how TActiveRecord react if an invalid magic-finder invoked. Possible values are: Exception - throw TActiveRecordException like before rev1545 Null - return null (default for backward compatibility reasons) To change behavior: or MyActiveRecord->setInvalidFinderResult(TActiveRecordInvalidFinderResult::Exception); or override MyActiveRecord->getInvalidFinderResult() to always return TActiveRecordInvalidFinderResult::Exception --- .../Data/ActiveRecord/TActiveRecordConfig.php | 36 ++++++++++++++++++++-- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'framework/Data/ActiveRecord/TActiveRecordConfig.php') diff --git a/framework/Data/ActiveRecord/TActiveRecordConfig.php b/framework/Data/ActiveRecord/TActiveRecordConfig.php index 63f05aef..fb57fd33 100644 --- a/framework/Data/ActiveRecord/TActiveRecordConfig.php +++ b/framework/Data/ActiveRecord/TActiveRecordConfig.php @@ -11,6 +11,7 @@ */ Prado::using('System.Data.TDataSourceConfig'); +Prado::using('System.Data.ActiveRecord.TActiveRecordManager'); /** * TActiveRecordConfig module configuration class. @@ -73,6 +74,14 @@ class TActiveRecordConfig extends TDataSourceConfig { private $_enableCache=false; + /** + * Defaults to '{@link TActiveRecordInvalidFinderResult::Null Null}' + * + * @var TActiveRecordInvalidFinderResult + * @since 3.1.5 + */ + private $_invalidFinderResult = TActiveRecordInvalidFinderResult::Null; + /** * Initialize the active record manager. * @param TXmlDocument xml configuration. @@ -80,11 +89,11 @@ class TActiveRecordConfig extends TDataSourceConfig public function init($xml) { parent::init($xml); - Prado::using('System.Data.ActiveRecord.TActiveRecordManager'); $manager = TActiveRecordManager::getInstance(); if($this->getEnableCache()) $manager->setCache($this->getApplication()->getCache()); $manager->setDbConnection($this->getDbConnection()); + $manager->setInvalidFinderResult($this->getInvalidFinderResult()); } /** @@ -103,5 +112,26 @@ class TActiveRecordConfig extends TDataSourceConfig { return $this->_enableCache; } -} - + + /** + * @return TActiveRecordInvalidFinderResult Defaults to '{@link TActiveRecordInvalidFinderResult::Null Null}'. + * @see setInvalidFinderResult + * @since 3.1.5 + */ + public function getInvalidFinderResult() + { + return $this->_invalidFinderResult; + } + + /** + * Define the way an active record finder react if an invalid magic-finder invoked + * + * @param TActiveRecordInvalidFinderResult + * @see getInvalidFinderResult + * @since 3.1.5 + */ + public function setInvalidFinderResult($value) + { + $this->_invalidFinderResult = TPropertyValue::ensureEnum($value, 'TActiveRecordInvalidFinderResult'); + } +} \ No newline at end of file -- cgit v1.2.3