[Tickets #11680] Kolab Storage: serialize/unserialize handling

bugs at horde.org bugs at horde.org
Fri Nov 9 15:43:28 UTC 2012


DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.

Ticket URL: http://bugs.horde.org/ticket/11680
------------------------------------------------------------------------------
  Ticket             | 11680
  Created By         | Thomas Jarosch <thomas.jarosch at intra2net.com>
  Summary            | Kolab Storage: serialize/unserialize handling
  Queue              | Horde Framework Packages
  Version            | Git master
  Type               | Bug
  State              | Unconfirmed
  Priority           | 1. Low
  Milestone          |
  Patch              |
  Owners             |
------------------------------------------------------------------------------


Thomas Jarosch <thomas.jarosch at intra2net.com> (2012-11-09 15:43) wrote:

Hi Gunnar,

I'm not sure how the serialize/unserialize handling is done in Kolab_Storage.
Let's take Storage/Cache/Data.php as an example.

The code in store() looks like this:
---------------------------------------------------
$this->_data[self::STAMP] = serialize($stamp);
---------------------------------------------------

The _load() code does nothing special to the "self::STAMP" field.

The getStamp() code looks like this:
----------------------------------------------
     public function getStamp()
     {
         $this->_checkInit(self::STAMP);
         return $this->_data[self::STAMP];
     }
----------------------------------------------

Is there some recursive unserialize magic happening I don't see yet?

IMHO if you call getStamp(), it will return garbage.
The same code pattern applies to a few other spots.

OTOH the actual user of "Storage/Cache/Data.php" is "Storage/Data/Cached.php".
That one unserializes the stamp before using it.

Is this a performance optimization to move unserialize() to the calling side?

Thomas






More information about the bugs mailing list