load($adapterName); } catch (Exception $e) { 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))) { 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); } }