Skip to content

Commit

Permalink
No longer use json_decode for serialize/unserialize
Browse files Browse the repository at this point in the history
After reviewing performance on newer PHP versions it
doesn't appear that this optimization is worth it, and
could in fact perform worse.
  • Loading branch information
mrubinsk committed Nov 1, 2022
1 parent b47013f commit ac98de9
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 21 deletions.
6 changes: 2 additions & 4 deletions lib/Horde/Imap/Client/Data/AclRights.php
Original file line number Diff line number Diff line change
Expand Up @@ -220,14 +220,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode(
array($this->_required, $this->_optional)
));
return [$this->_required, $this->_optional];
}

public function __unserialize(array $data)
{
list($this->_required, $this->_optional) = json_decode($data[0], true);
list($this->_required, $this->_optional) = $data;
}

}
4 changes: 2 additions & 2 deletions lib/Horde/Imap/Client/Data/Capability.php
Original file line number Diff line number Diff line change
Expand Up @@ -223,12 +223,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode($this->_data));
return $this->_data;
}

public function __unserialize(array $data)
{
$this->_data = json_decode($data[0], true);
$this->_data = $data;
}

}
4 changes: 2 additions & 2 deletions lib/Horde/Imap/Client/Data/Namespace.php
Original file line number Diff line number Diff line change
Expand Up @@ -149,12 +149,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode($this->_data));
return $this->_data;
}

public function __unserialize(array $data)
{
$this->_data = json_decode($data[0], true);
$this->_data = $data;
}

}
4 changes: 2 additions & 2 deletions lib/Horde/Imap/Client/Data/SearchCharset.php
Original file line number Diff line number Diff line change
Expand Up @@ -187,12 +187,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode($this->_charsets));
return $this->_charsets;
}

public function __unserialize(array $data)
{
$this->_charsets = json_decode($data[0], true);
$this->_charsets = $data;
}

}
7 changes: 2 additions & 5 deletions lib/Horde/Imap/Client/Data/Thread.php
Original file line number Diff line number Diff line change
Expand Up @@ -202,15 +202,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode(array(
$this->_thread,
$this->_type,
)));
return [$this->_thread, $this->_type];
}

public function __unserialize(array $data)
{
list($this->_thread, $this->_type) = json_decode($data[0], true);
list($this->_thread, $this->_type) = $data;
}

/* Protected methods. */
Expand Down
6 changes: 2 additions & 4 deletions lib/Horde/Imap/Client/Ids/Map.php
Original file line number Diff line number Diff line change
Expand Up @@ -235,18 +235,16 @@ public function __serialize()
/* Sort before storing; provides more compressible representation. */
$this->sort();

return array(json_encode(array(
return [
strval(new Horde_Imap_Client_Ids(array_keys($this->_ids))),
strval(new Horde_Imap_Client_Ids(array_values($this->_ids)))
)));
];
}

/**
*/
public function __unserialize($data)
{
$data = json_decode($data[0], true);

$keys = new Horde_Imap_Client_Ids($data[0]);
$vals = new Horde_Imap_Client_Ids($data[1]);
$this->_ids = array_combine($keys->ids, $vals->ids);
Expand Down
4 changes: 2 additions & 2 deletions lib/Horde/Imap/Client/Mailbox.php
Original file line number Diff line number Diff line change
Expand Up @@ -153,12 +153,12 @@ public function unserialize($data)
*/
public function __serialize()
{
return array(json_encode(array($this->_utf7imap, $this->_utf8)));
return [$this->_utf7imap, $this->_utf8];
}

public function __unserialize(array $data)
{
list($this->_utf7imap, $this->_utf8) = json_decode($data[0], true);
list($this->_utf7imap, $this->_utf8) = $data;
}

}

0 comments on commit ac98de9

Please sign in to comment.