From 562e322fe595b4d3307ff28a96c8c5fbcc284010 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Thu, 25 Feb 2016 17:01:17 +0100 Subject: Applied some misc optimizations to class serialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoid saving in the page state the values of class variables if they’re still the default. Reduces page state size, based on the work initiated in 8dc9d4f7d49bcbeaf4998baf74a4f4459967c1f0 --- framework/Collections/TMap.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'framework/Collections/TMap.php') diff --git a/framework/Collections/TMap.php b/framework/Collections/TMap.php index d610dce6..a356fe77 100644 --- a/framework/Collections/TMap.php +++ b/framework/Collections/TMap.php @@ -41,6 +41,21 @@ class TMap extends TComponent implements IteratorAggregate,ArrayAccess,Countable */ private $_r=false; + /** + * Returns an array with the names of all variables of this object that should NOT be serialized + * because their value is the default one or useless to be cached for the next page loads. + * Reimplement in derived classes to add new variables, but remember to also to call the parent + * implementation first. + */ + protected function __getZappableSleepProps(&$exprops) + { + parent::__getZappableSleepProps($exprops); + if ($this->_d===array()) + $exprops[] = "\0TMap\0_d"; + if ($this->_r===false) + $exprops[] = "\0TMap\0_r"; + } + /** * Constructor. * Initializes the list with an array or an iterable object. -- cgit v1.2.3