Skip to content

Commit

Permalink
Add __serialize/__unserialize (#5)
Browse files Browse the repository at this point in the history
Signed-off-by: Christoph Wurst <[email protected]>
  • Loading branch information
ChristophWurst authored Jun 9, 2022
1 parent 01ab0cf commit 44e29db
Show file tree
Hide file tree
Showing 17 changed files with 294 additions and 81 deletions.
27 changes: 19 additions & 8 deletions lib/Horde/Imap/Client/Base.php
Original file line number Diff line number Diff line change
Expand Up @@ -364,20 +364,31 @@ public function update(SplSubject $subject)
*/
public function serialize()
{
return serialize(array(
'i' => $this->_init,
'p' => $this->_params,
'v' => self::VERSION
));
return serialize($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$data = @unserialize($data);
if (!is_array($data) ||
!isset($data['v']) ||
$this->__unserialize(@unserialize($data));
}

/**
* @return array
*/
public function __serialize()
{
return array(
'i' => $this->_init,
'p' => $this->_params,
'v' => self::VERSION
);
}

public function __unserialize(array $data)
{
if (!isset($data['v']) ||
($data['v'] != self::VERSION)) {
throw new Exception('Cache version change');
}
Expand Down
17 changes: 15 additions & 2 deletions lib/Horde/Imap/Client/Cache/Backend.php
Original file line number Diff line number Diff line change
Expand Up @@ -151,14 +151,27 @@ abstract public function clear($lifetime);
*/
public function serialize()
{
return serialize($this->_params);
return serialize($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$this->_params = unserialize($data);
$this->__unserialize(unserialize($data));
}

/**
* @return array
*/
public function __serialize()
{
return $this->_params;
}

public function __unserialize(array $data)
{
$this->_params = $data;
$this->_initOb();
}

Expand Down
9 changes: 9 additions & 0 deletions lib/Horde/Imap/Client/Cache/Backend/Cache.php
Original file line number Diff line number Diff line change
Expand Up @@ -503,4 +503,13 @@ public function serialize()
return parent::serialize();
}

/**
* @return array
*/
public function __serialize()
{
$this->save();
return parent::__serialize();
}

}
15 changes: 15 additions & 0 deletions lib/Horde/Imap/Client/Data/Acl.php
Original file line number Diff line number Diff line change
Expand Up @@ -166,4 +166,19 @@ public function unserialize($data)
$this->_rights = json_decode($data);
}

/**
* @return array
*/
public function __serialize()
{
return array(
'rights' => $this->_rights
);
}

public function __unserialize(array $data)
{
$this->_rights = $data['rights'];
}

}
23 changes: 18 additions & 5 deletions lib/Horde/Imap/Client/Data/AclRights.php
Original file line number Diff line number Diff line change
Expand Up @@ -201,17 +201,30 @@ public function valid()
*/
public function serialize()
{
return json_encode(array(
$this->_required,
$this->_optional
));
return json_encode($this->__serialize());
}

/**
*/
public function unserialize($data)
{
list($this->_required, $this->_optional) = json_decode($data);
$this->__unserialize(json_decode($data, true));
}

/**
* @return array
*/
public function __serialize()
{
return array(
$this->_required,
$this->_optional,
);
}

public function __unserialize(array $data)
{
list($this->_required, $this->_optional) = $data;
}

}
17 changes: 15 additions & 2 deletions lib/Horde/Imap/Client/Data/Capability.php
Original file line number Diff line number Diff line change
Expand Up @@ -204,14 +204,27 @@ public function notify()
*/
public function serialize()
{
return json_encode($this->_data);
return json_encode($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$this->_data = json_decode($data, true);
$this->__unserialize(json_decode($data, true));
}

/**
* @return array
*/
public function __serialize()
{
return $this->_data;
}

public function __unserialize(array $data)
{
$this->_data = $data;
}

}
23 changes: 18 additions & 5 deletions lib/Horde/Imap/Client/Data/Envelope.php
Original file line number Diff line number Diff line change
Expand Up @@ -205,18 +205,31 @@ protected function _normalizeProperty($name)
*/
public function serialize()
{
return serialize(array(
'd' => $this->_data,
'v' => self::VERSION
));
return serialize($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$data = @unserialize($data);
if (empty($data['v']) || ($data['v'] != self::VERSION)) {
$this->__unserialize($data);
}

/**
* @return array
*/
public function __serialize()
{
return array(
'd' => $this->_data,
'v' => self::VERSION,
);
}

public function __unserialize(array $data)
{
if (empty($data['v']) || $data['v'] != self::VERSION) {
throw new Exception('Cache version change');
}

Expand Down
17 changes: 15 additions & 2 deletions lib/Horde/Imap/Client/Data/Namespace.php
Original file line number Diff line number Diff line change
Expand Up @@ -130,14 +130,27 @@ public function __toString()
*/
public function serialize()
{
return json_encode($this->_data);
return json_encode($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$this->_data = json_decode($data, true);
$this->__unserialize(json_decode($data, true));
}

/**
* @return array
*/
public function __serialize()
{
return $this->_data;
}

public function __unserialize(array $data)
{
$this->_data = $data;
}

}
17 changes: 15 additions & 2 deletions lib/Horde/Imap/Client/Data/SearchCharset.php
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,27 @@ public function notify()
*/
public function serialize()
{
return json_encode($this->_charsets);
return json_encode($this->__serialize());
}

/**
*/
public function unserialize($data)
{
$this->_charsets = json_decode($data, true);
$this->__unserialize(json_decode($data, true));
}

/**
* @return array
*/
public function __serialize()
{
return $this->_charsets;
}

public function __unserialize(array $data)
{
$this->_charsets = $data;
}

}
12 changes: 12 additions & 0 deletions lib/Horde/Imap/Client/Data/SearchCharset/Utf8.php
Original file line number Diff line number Diff line change
Expand Up @@ -63,4 +63,16 @@ public function unserialize($data)
{
}

/**
* @return array
*/
public function __serialize()
{
return array();
}

public function __unserialize(array $data)
{
}

}
23 changes: 18 additions & 5 deletions lib/Horde/Imap/Client/Data/Thread.php
Original file line number Diff line number Diff line change
Expand Up @@ -183,17 +183,30 @@ public function count()
*/
public function serialize()
{
return json_encode(array(
$this->_thread,
$this->_type
));
return json_encode($this->__serialize());
}

/**
*/
public function unserialize($data)
{
list($this->_thread, $this->_type) = json_decode($data, true);
$this->__unserialize(json_decode($data, true));
}

/**
* @return array
*/
public function __serialize()
{
return array(
$this->_thread,
$this->_type,
);
}

public function __unserialize(array $data)
{
list($this->_thread, $this->_type) = $data;
}

/* Protected methods. */
Expand Down
Loading

0 comments on commit 44e29db

Please sign in to comment.