From 8dc9d4f7d49bcbeaf4998baf74a4f4459967c1f0 Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Sun, 26 Jun 2011 09:56:56 +0000 Subject: applied serialization optimization patch (337) --- framework/Data/ActiveRecord/TActiveRecord.php | 3 +-- .../Data/SqlMap/Configuration/TParameterProperty.php | 12 ++++++++++++ framework/Data/SqlMap/Configuration/TResultProperty.php | 16 ++++++++++++++++ framework/Data/SqlMap/Configuration/TSqlMapStatement.php | 6 ++++++ framework/Data/TDbCommand.php | 3 +-- framework/Data/TDbConnection.php | 4 ++-- 6 files changed, 38 insertions(+), 6 deletions(-) (limited to 'framework/Data') diff --git a/framework/Data/ActiveRecord/TActiveRecord.php b/framework/Data/ActiveRecord/TActiveRecord.php index 3bbc2dbc..6a709162 100644 --- a/framework/Data/ActiveRecord/TActiveRecord.php +++ b/framework/Data/ActiveRecord/TActiveRecord.php @@ -203,8 +203,7 @@ abstract class TActiveRecord extends TComponent */ public function __sleep() { - $this->_connection=null; - return array_keys(get_object_vars($this)); + return array_diff(parent::__sleep(),array("\0*\0_connection")); } /** diff --git a/framework/Data/SqlMap/Configuration/TParameterProperty.php b/framework/Data/SqlMap/Configuration/TParameterProperty.php index de879c4b..961bfecc 100644 --- a/framework/Data/SqlMap/Configuration/TParameterProperty.php +++ b/framework/Data/SqlMap/Configuration/TParameterProperty.php @@ -134,5 +134,17 @@ class TParameterProperty extends TComponent { $this->_nullValue = $value; } + + public function __sleep() + { + $exprops = array(); $cn = 'TParameterProperty'; + if ($this->_typeHandler===null) $exprops[] = "\0$cn\0_typeHandler"; + if ($this->_type===null) $exprops[] = "\0$cn\0_type"; + if ($this->_column===null) $exprops[] = "\0$cn\0_column"; + if ($this->_dbType===null) $exprops[] = "\0$cn\0_dbType"; + if ($this->_property===null) $exprops[] = "\0$cn\0_property"; + if ($this->_nullValue===null) $exprops[] = "\0$cn\0_nullValue"; + return array_diff(parent::__sleep(),$exprops); + } } diff --git a/framework/Data/SqlMap/Configuration/TResultProperty.php b/framework/Data/SqlMap/Configuration/TResultProperty.php index ce32a17d..8d146e66 100644 --- a/framework/Data/SqlMap/Configuration/TResultProperty.php +++ b/framework/Data/SqlMap/Configuration/TResultProperty.php @@ -324,5 +324,21 @@ class TResultProperty extends TComponent } return $this->getPropertyValueType() == self::ARRAY_TYPE; } + + public function __sleep() + { + $exprops = array(); $cn = 'TResultProperty'; + if ($this->_nullValue===null) $exprops[] = "\0$cn\0_nullValue"; + if ($this->_propertyName===null) $exprops[] = "\0$cn\0_propertyNama"; + if ($this->_columnName===null) $exprops[] = "\0$cn\0_columnName"; + if ($this->_columnIndex==-1) $exprops[] = "\0$cn\0_columnIndex"; + if ($this->_nestedResultMapName===null) $exprops[] = "\0$cn\0_nestedResultMapName"; + if ($this->_nestedResultMap===null) $exprops[] = "\0$cn\0_nestedResultMap"; + if ($this->_valueType===null) $exprops[] = "\0$cn\0_valueType"; + if ($this->_typeHandler===null) $exprops[] = "\0$cn\0_typeHandler"; + if ($this->_isLazyLoad===false) $exprops[] = "\0$cn\0_isLazyLoad"; + if ($this->_select===null) $exprops[] = "\0$cn\0_select"; + return array_diff(parent::__sleep(),$exprops); + } } diff --git a/framework/Data/SqlMap/Configuration/TSqlMapStatement.php b/framework/Data/SqlMap/Configuration/TSqlMapStatement.php index 0648d67c..3a62cbed 100644 --- a/framework/Data/SqlMap/Configuration/TSqlMapStatement.php +++ b/framework/Data/SqlMap/Configuration/TSqlMapStatement.php @@ -292,6 +292,12 @@ class TSqlMapStatement extends TComponent if(strlen($type= $this->getResultClass()) > 0) return $this->createInstanceOf($registry,$type,$row); } + + public function __sleep() + { + return array_diff(parent::__sleep(),array("\0TSqlMapStatement\0_resultMap")); + } + } /** diff --git a/framework/Data/TDbCommand.php b/framework/Data/TDbCommand.php index 606099d4..937a44ff 100644 --- a/framework/Data/TDbCommand.php +++ b/framework/Data/TDbCommand.php @@ -58,8 +58,7 @@ class TDbCommand extends TComponent */ public function __sleep() { - $this->_statement=null; - return array_keys(get_object_vars($this)); + return array_diff(parent::__sleep(),array("\0TDbCommand\0_statement")); } /** diff --git a/framework/Data/TDbConnection.php b/framework/Data/TDbConnection.php index 01cacce2..69420ea1 100644 --- a/framework/Data/TDbConnection.php +++ b/framework/Data/TDbConnection.php @@ -130,8 +130,8 @@ class TDbConnection extends TComponent */ public function __sleep() { - $this->close(); - return array_keys(get_object_vars($this)); +// $this->close(); - DO NOT CLOSE the current connection as serializing doesn't neccessarily mean we don't this connection anymore in the current session + return array_diff(parent::__sleep(),array("\0TDbConnection\0_pdo","\0TDbConnection\0_active")); } /** -- cgit v1.2.3