From 3db63ebd8973d72668cf138c17763e29a71a8fd0 Mon Sep 17 00:00:00 2001 From: Michael M Slusarz Date: Thu, 4 Mar 2010 12:37:57 -0700 Subject: [PATCH] Horde_Serialize now throws exceptions --- framework/Serialize/lib/Horde/Serialize.php | 26 ++++++++++------------ .../Serialize/lib/Horde/Serialize/Exception.php | 16 +++++++++++++ framework/Serialize/package.xml | 11 ++++++++- .../test/Horde/Serialize/json_encode_decode.phpt | 1 - 4 files changed, 38 insertions(+), 16 deletions(-) create mode 100644 framework/Serialize/lib/Horde/Serialize/Exception.php diff --git a/framework/Serialize/lib/Horde/Serialize.php b/framework/Serialize/lib/Horde/Serialize.php index 217285ee8..b5cd84e32 100644 --- a/framework/Serialize/lib/Horde/Serialize.php +++ b/framework/Serialize/lib/Horde/Serialize.php @@ -8,6 +8,7 @@ * did not receive this file, see http://www.fsf.org/copyleft/lgpl.html. * * @author Stephane Huther + * @author Michael Slusarz * @package Horde_Serialize * @category Horde */ @@ -48,7 +49,7 @@ class Horde_Serialize * requires. * * @return string The serialized data. - * Returns PEAR_Error on error. + * @throws Horde_Serialize_Exception */ static public function serialize($data, $mode = array(self::BASIC), $params = null) @@ -61,12 +62,9 @@ class Horde_Serialize foreach ($mode as $val) { /* Check to make sure the mode is supported. */ if (!self::hasCapability($val)) { - return PEAR::raiseError('Unsupported serialization type'); + throw new Horde_Serialize_Exception('Unsupported serialization type'); } $data = self::_serialize($data, $val, $params); - if ($data instanceOf PEAR_Error) { - break; - } } return $data; @@ -86,7 +84,7 @@ class Horde_Serialize * method requires. * * @return string The unserialized data. - * Returns PEAR_Error on error. + * @throws Horde_Serialize_Exception */ static public function unserialize($data, $mode = self::BASIC, $params = null) @@ -99,12 +97,9 @@ class Horde_Serialize foreach ($mode as $val) { /* Check to make sure the mode is supported. */ if (!self::hasCapability($val)) { - return PEAR::raiseError('Unsupported unserialization type'); + throw new Horde_Serialize_Exception('Unsupported unserialization type'); } $data = self::_unserialize($data, $val, $params); - if (is_a($data, 'PEAR_Error')) { - break; - } } return $data; @@ -170,7 +165,8 @@ class Horde_Serialize * @param mixed $params Any additional parameters the serialization method * requires. * - * @return string A serialized string or PEAR_Error on error. + * @return string A serialized string. + * @throws Horde_Serialize_Exception */ static protected function _serialize($data, $mode, $params = null) { @@ -276,7 +272,7 @@ class Horde_Serialize } if ($data === false) { - return PEAR::raiseError('Serialization failed.'); + throw new Horde_Serialize_Exception('Serialization failed.'); } return $data; } @@ -291,7 +287,8 @@ class Horde_Serialize * @param mixed $params Any additional parameters the unserialization * method requires. * - * @return mixed Unserialized data on success or PEAR_Error on error. + * @return mixed Unserialized data. + * @throws Horde_Serialize_Exception */ static protected function _unserialize(&$data, $mode, $params = null) { @@ -371,8 +368,9 @@ class Horde_Serialize } if ($data === false) { - return PEAR::raiseError('Unserialization failed.'); + throw new Horde_Serialize_Exception('Unserialization failed.'); } + return $data; } diff --git a/framework/Serialize/lib/Horde/Serialize/Exception.php b/framework/Serialize/lib/Horde/Serialize/Exception.php new file mode 100644 index 000000000..e94dc2b5f --- /dev/null +++ b/framework/Serialize/lib/Horde/Serialize/Exception.php @@ -0,0 +1,16 @@ + + * @category Horde + * @package Horde_Serialize + */ +class Horde_Serialize_Exception extends Horde_Exception_Prior +{ +} diff --git a/framework/Serialize/package.xml b/framework/Serialize/package.xml index 9b266d829..b2f1f12bc 100644 --- a/framework/Serialize/package.xml +++ b/framework/Serialize/package.xml @@ -31,13 +31,17 @@ http://pear.php.net/dtd/package-2.0.xsd"> beta LGPL - * Add support for limited error handling for json encoding errors + * Throw exceptions rather than returning PEAR_Errors. + * Add support for limited error handling for json encoding errors (requires PHP 5.3+). * Initial Horde 4 package. + + + @@ -69,6 +73,10 @@ http://pear.php.net/dtd/package-2.0.xsd"> 1.5.0 + Exception + pear.horde.org + + Util pear.horde.org @@ -76,6 +84,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> + diff --git a/framework/Serialize/test/Horde/Serialize/json_encode_decode.phpt b/framework/Serialize/test/Horde/Serialize/json_encode_decode.phpt index 50b389829..71ee6cb08 100644 --- a/framework/Serialize/test/Horde/Serialize/json_encode_decode.phpt +++ b/framework/Serialize/test/Horde/Serialize/json_encode_decode.phpt @@ -5,7 +5,6 @@ JSON encode/decode tests. error_reporting(E_ALL); require dirname(__FILE__) . '/../../../lib/Horde/Serialize.php'; -require 'PEAR.php'; function out($str) { -- 2.11.0