File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/laminas/laminas-serializer/src/Serializer.php
<?php
/**
* @see https://github.com/laminas/laminas-serializer for the canonical source repository
* @copyright https://github.com/laminas/laminas-serializer/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-serializer/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\Serializer;
use Laminas\Serializer\Adapter\AdapterInterface as Adapter;
use Laminas\ServiceManager\ServiceManager;
abstract class Serializer
{
/**
* Plugin manager for loading adapters
*
* @var null|AdapterPluginManager
*/
protected static $adapters;
/**
* The default adapter.
*
* @var string|Adapter
*/
protected static $defaultAdapter = 'PhpSerialize';
/**
* Create a serializer adapter instance.
*
* @param string|Adapter $adapterName Name of the adapter class
* @param array |\Traversable|null $adapterOptions Serializer options
* @return Adapter
*/
public static function factory($adapterName, $adapterOptions = null)
{
if ($adapterName instanceof Adapter) {
return $adapterName; // $adapterName is already an adapter object
}
return static::getAdapterPluginManager()->get($adapterName, $adapterOptions);
}
/**
* Change the adapter plugin manager
*
* @param AdapterPluginManager $adapters
* @return void
*/
public static function setAdapterPluginManager(AdapterPluginManager $adapters)
{
static::$adapters = $adapters;
}
/**
* Get the adapter plugin manager
*
* @return AdapterPluginManager
*/
public static function getAdapterPluginManager()
{
if (static::$adapters === null) {
static::$adapters = new AdapterPluginManager(new ServiceManager);
}
return static::$adapters;
}
/**
* Resets the internal adapter plugin manager
*
* @return AdapterPluginManager
*/
public static function resetAdapterPluginManager()
{
static::$adapters = new AdapterPluginManager(new ServiceManager);
return static::$adapters;
}
/**
* Change the default adapter.
*
* @param string|Adapter $adapter
* @param array|\Traversable|null $adapterOptions
*/
public static function setDefaultAdapter($adapter, $adapterOptions = null)
{
static::$defaultAdapter = static::factory($adapter, $adapterOptions);
}
/**
* Get the default adapter.
*
* @return Adapter
*/
public static function getDefaultAdapter()
{
if (! static::$defaultAdapter instanceof Adapter) {
static::setDefaultAdapter(static::$defaultAdapter);
}
return static::$defaultAdapter;
}
/**
* Generates a storable representation of a value using the default adapter.
* Optionally different adapter could be provided as second argument
*
* @param mixed $value
* @param string|Adapter $adapter
* @param array|\Traversable|null $adapterOptions Adapter constructor options
* only used to create adapter instance
* @return string
*/
public static function serialize($value, $adapter = null, $adapterOptions = null)
{
if ($adapter !== null) {
$adapter = static::factory($adapter, $adapterOptions);
} else {
$adapter = static::getDefaultAdapter();
}
return $adapter->serialize($value);
}
/**
* Creates a PHP value from a stored representation using the default adapter.
* Optionally different adapter could be provided as second argument
*
* @param string $serialized
* @param string|Adapter $adapter
* @param array|\Traversable|null $adapterOptions Adapter constructor options
* only used to create adapter instance
* @return mixed
*/
public static function unserialize($serialized, $adapter = null, $adapterOptions = null)
{
if ($adapter !== null) {
$adapter = static::factory($adapter, $adapterOptions);
} else {
$adapter = static::getDefaultAdapter();
}
return $adapter->unserialize($serialized);
}
}