summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HISTORY9
-rw-r--r--framework/Data/SqlMap/Statements/TPreparedCommand.php5
-rw-r--r--framework/Data/SqlMap/Statements/TPreparedStatement.php33
-rw-r--r--framework/Web/TUrlMapping.php11
-rw-r--r--framework/Web/UI/TClientScriptManager.php17
5 files changed, 41 insertions, 34 deletions
diff --git a/HISTORY b/HISTORY
index 36a844e6..bbb1daca 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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;
}