diff options
-rw-r--r-- | HISTORY | 9 | ||||
-rw-r--r-- | framework/Data/SqlMap/Statements/TPreparedCommand.php | 5 | ||||
-rw-r--r-- | framework/Data/SqlMap/Statements/TPreparedStatement.php | 33 | ||||
-rw-r--r-- | framework/Web/TUrlMapping.php | 11 | ||||
-rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 17 |
5 files changed, 41 insertions, 34 deletions
@@ -1,9 +1,14 @@ Next Prado iteration: 3.3.0 - + EHN: Issue #260 - TComponent Update: Behaviors, Class Behaviors, fx global events, and dy one to one events (javalizard) EHN: Issue #292 - Events should have priorities to allow event handler order to be specified (javalizard) -Version 3.2.1 Jan XX, 2013 +Version 3.2.2 to be released + +ENH: Issue 433: Prado object-creation performance micro-optimizations +BUG: Issue 434: Buttons stops working properly after response->writeFile + +Version 3.2.1 Jan 19, 2013 BUG: Issue #44 - [895] SDateFormatter cannot parse date earlier than 1970 (ctrlaltca) ENH: Issue #180 - Integrate XMLRPC web service (rojaro) diff --git a/framework/Data/SqlMap/Statements/TPreparedCommand.php b/framework/Data/SqlMap/Statements/TPreparedCommand.php index 4c3a6266..e86e096c 100644 --- a/framework/Data/SqlMap/Statements/TPreparedCommand.php +++ b/framework/Data/SqlMap/Statements/TPreparedCommand.php @@ -47,9 +47,10 @@ class TPreparedCommand protected function applyParameterMap($manager,$command,$prepared, $statement, $parameterObject) { - $properties = $prepared->getParameterNames(); - $parameters = $prepared->getParameterValues(); + $properties = $prepared->getParameterNames(false); + //$parameters = $prepared->getParameterValues(); $registry=$manager->getTypeHandlers(); + if ($properties) for($i = 0, $k=$properties->getCount(); $i<$k; $i++) { $property = $statement->parameterMap()->getProperty($i); diff --git a/framework/Data/SqlMap/Statements/TPreparedStatement.php b/framework/Data/SqlMap/Statements/TPreparedStatement.php index 46b16cec..b4a7c272 100644 --- a/framework/Data/SqlMap/Statements/TPreparedStatement.php +++ b/framework/Data/SqlMap/Statements/TPreparedStatement.php @@ -24,33 +24,32 @@ class TPreparedStatement extends TComponent private $_parameterNames; private $_parameterValues; - public function __construct() - { - $this->_parameterNames=new TList; - $this->_parameterValues=new TMap; - } - public function getPreparedSql(){ return $this->_sqlString; } public function setPreparedSql($value){ $this->_sqlString = $value; } - public function getParameterNames(){ return $this->_parameterNames; } - public function setParameterNames($value){ $this->_parameterNames = $value; } + public function getParameterNames($needed = true) + { + if (!$this->_parameterNames and $needed) + $this->_parameterNames = new TList; + return $this->_parameterNames; + } - public function getParameterValues(){ return $this->_parameterValues; } - public function setParameterValues($value){ $this->_parameterValues = $value; } + public function setParameterNames($value){ $this->_parameterNames = $value; } - public function __wakeup() - { - parent::__wakeup(); - if (!$this->_parameterNames) $this->_parameterNames = new TList; - if (!$this->_parameterValues) $this->_parameterValues = new TMap; + public function getParameterValues($needed = true) + { + if (!$this->_parameterValues and $needed) + $this->_parameterValues=new TMap; + return $this->_parameterValues; } + + public function setParameterValues($value){ $this->_parameterValues = $value; } public function __sleep() { $exprops = array(); $cn = __CLASS__; - if (!$this->_parameterNames->getCount()) $exprops[] = "\0$cn\0_parameterNames"; - if (!$this->_parameterValues->getCount()) $exprops[] = "\0$cn\0_parameterValues"; + if (!$this->_parameterNames or !$this->_parameterNames->getCount()) $exprops[] = "\0$cn\0_parameterNames"; + if (!$this->_parameterValues or !$this->_parameterValues->getCount()) $exprops[] = "\0$cn\0_parameterValues"; return array_diff(parent::__sleep(),$exprops); } } diff --git a/framework/Web/TUrlMapping.php b/framework/Web/TUrlMapping.php index 23947f3e..0b6e517e 100644 --- a/framework/Web/TUrlMapping.php +++ b/framework/Web/TUrlMapping.php @@ -518,8 +518,6 @@ class TUrlMappingPattern extends TComponent public function __construct(TUrlManager $manager) { $this->_manager=$manager; - $this->_parameters=new TAttributeCollection; - $this->_parameters->setCaseSensitive(true); } /** @@ -552,6 +550,7 @@ class TUrlMappingPattern extends TComponent { $params=array(); $values=array(); + if ($this->_parameters) foreach($this->_parameters as $key=>$value) { $params[]='{'.$key.'}'; @@ -660,6 +659,11 @@ class TUrlMappingPattern extends TComponent */ public function getParameters() { + if (!$this->_parameters) + { + $this->_parameters=new TAttributeCollection; + $this->_parameters->setCaseSensitive(true); + } return $this->_parameters; } @@ -809,6 +813,7 @@ class TUrlMappingPattern extends TComponent { if(!$this->_customUrl || $this->getPattern()===null) return false; + if ($this->_parameters) foreach($this->_parameters as $key=>$value) { if(!isset($getItems[$key])) @@ -832,7 +837,7 @@ class TUrlMappingPattern extends TComponent // for the GET variables matching the pattern, put them in the URL path foreach($getItems as $key=>$value) { - if($this->_parameters->contains($key) || $key==='*' && $this->getIsWildCardPattern()) + if($this->_parameters && ($this->_parameters->contains($key) || $key==='*' && $this->getIsWildCardPattern())) $replace['{'.$key.'}']=$encodeGetItems ? rawurlencode($value) : $value; else $extra[$key]=$value; diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index 39cab493..cab002e4 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -770,14 +770,6 @@ abstract class TClientSideOptions extends TComponent private $_options; /** - * Constructor, initialize the options list. - */ - public function __construct() - { - $this->_options = Prado::createComponent('System.Collections.TMap'); - } - - /** * Adds on client-side event handler by wrapping the code within a * javascript function block. If the code begins with "javascript:", the * code is assumed to be a javascript function block rather than arbiturary @@ -797,7 +789,10 @@ abstract class TClientSideOptions extends TComponent */ protected function getOption($name) { - return $this->_options->itemAt($name); + if ($this->_options) + return $this->_options->itemAt($name); + else + return null; } /** @@ -806,7 +801,7 @@ abstract class TClientSideOptions extends TComponent */ protected function setOption($name, $value) { - $this->_options->add($name, $value); + $this->getOptions()->add($name, $value); } /** @@ -814,6 +809,8 @@ abstract class TClientSideOptions extends TComponent */ public function getOptions() { + if (!$this->_options) + $this->_options = Prado::createComponent('System.Collections.TMap'); return $this->_options; } |