custom/plugins/CrswCleverReachOfficial/src/Core/Infrastructure/Serializer/Serializer.php line 46

Open in your IDE?
  1. <?php
  2. namespace Crsw\CleverReachOfficial\Core\Infrastructure\Serializer;
  3. use Crsw\CleverReachOfficial\Core\Infrastructure\ServiceRegister;
  4. /**
  5.  * Class Serializer
  6.  *
  7.  * @package Crsw\CleverReachOfficial\Core\Infrastructure\Serializer
  8.  */
  9. abstract class Serializer
  10. {
  11.     /**
  12.      * string CLASS_NAME Class name identifier.
  13.      */
  14.     const CLASS_NAME __CLASS__;
  15.     /**
  16.      * Serializes data.
  17.      *
  18.      * @param mixed $data Data to be serialized.
  19.      *
  20.      * @return string String representation of the serialized data.
  21.      */
  22.     public static function serialize($data)
  23.     {
  24.         /** @var Serializer $instace */
  25.         $instance ServiceRegister::getService(self::CLASS_NAME);
  26.         return $instance->doSerialize($data);
  27.     }
  28.     /**
  29.      * Unserializes data.
  30.      *
  31.      * @param string $serialized Serialized data.
  32.      *
  33.      * @return mixed Unserialized data.
  34.      */
  35.     public static function unserialize($serialized)
  36.     {
  37.         /** @var Serializer $instace */
  38.         $instance ServiceRegister::getService(self::CLASS_NAME);
  39.         return $instance->doUnserialize($serialized);
  40.     }
  41.     /**
  42.      * Serializes data.
  43.      *
  44.      * @param mixed $data Data to be serialized.
  45.      *
  46.      * @return string String representation of the serialized data.
  47.      */
  48.     abstract protected function doSerialize($data);
  49.     /**
  50.      * Unserializes data.
  51.      *
  52.      * @param string $serialized Serialized data.
  53.      *
  54.      * @return mixed Unserialized data.
  55.      */
  56.     abstract protected function doUnserialize($serialized);
  57. }