diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Serializer.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Serializer.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,188 @@ +load($adapterName); + } catch (Exception $e) { + require_once 'Zend/Serializer/Exception.php'; + throw new Zend_Serializer_Exception('Can\'t load serializer adapter "'.$adapterName.'"', 0, $e); + } + + // ZF-8842: + // check that the loaded class implements Zend_Serializer_Adapter_AdapterInterface without execute code + if (!in_array('Zend_Serializer_Adapter_AdapterInterface', class_implements($adapterClass))) { + require_once 'Zend/Serializer/Exception.php'; + throw new Zend_Serializer_Exception('The serializer adapter class "'.$adapterClass.'" must implement Zend_Serializer_Adapter_AdapterInterface'); + } + + return new $adapterClass($opts); + } + + /** + * Get the adapter plugin loader. + * + * @return Zend_Loader_PluginLoader + */ + public static function getAdapterLoader() + { + if (self::$_adapterLoader === null) { + self::$_adapterLoader = self::_getDefaultAdapterLoader(); + } + return self::$_adapterLoader; + } + + /** + * Change the adapter plugin load. + * + * @param Zend_Loader_PluginLoader $pluginLoader + * @return void + */ + public static function setAdapterLoader(Zend_Loader_PluginLoader $pluginLoader) + { + self::$_adapterLoader = $pluginLoader; + } + + /** + * Resets the internal adapter plugin loader + * + * @return Zend_Loader_PluginLoader + */ + public static function resetAdapterLoader() + { + self::$_adapterLoader = self::_getDefaultAdapterLoader(); + return self::$_adapterLoader; + } + + /** + * Returns a default adapter plugin loader + * + * @return Zend_Loader_PluginLoader + */ + protected static function _getDefaultAdapterLoader() + { + $loader = new Zend_Loader_PluginLoader(); + $loader->addPrefixPath('Zend_Serializer_Adapter', dirname(__FILE__).'/Serializer/Adapter'); + return $loader; + } + + /** + * Change the default adapter. + * + * @param string|Zend_Serializer_Adapter_AdapterInterface $adapter + * @param array|Zend_Config $options + */ + public static function setDefaultAdapter($adapter, $options = array()) + { + self::$_defaultAdapter = self::factory($adapter, $options); + } + + /** + * Get the default adapter. + * + * @return Zend_Serializer_Adapter_AdapterInterface + */ + public static function getDefaultAdapter() + { + if (!self::$_defaultAdapter instanceof Zend_Serializer_Adapter_AdapterInterface) { + self::setDefaultAdapter(self::$_defaultAdapter); + } + return self::$_defaultAdapter; + } + + /** + * Generates a storable representation of a value using the default adapter. + * + * @param mixed $value + * @param array $options + * @return string + * @throws Zend_Serializer_Exception + */ + public static function serialize($value, array $options = array()) + { + if (isset($options['adapter'])) { + $adapter = self::factory($options['adapter']); + unset($options['adapter']); + } else { + $adapter = self::getDefaultAdapter(); + } + + return $adapter->serialize($value, $options); + } + + /** + * Creates a PHP value from a stored representation using the default adapter. + * + * @param string $serialized + * @param array $options + * @return mixed + * @throws Zend_Serializer_Exception + */ + public static function unserialize($serialized, array $options = array()) + { + if (isset($options['adapter'])) { + $adapter = self::factory($options['adapter']); + unset($options['adapter']); + } else { + $adapter = self::getDefaultAdapter(); + } + + return $adapter->unserialize($serialized, $options); + } +}