sessionless-1.x-dev/src/Serialization/JsonSafeCompressedPhpSerialization.php

src/Serialization/JsonSafeCompressedPhpSerialization.php
<?php

declare(strict_types=1);
namespace Drupal\sessionless\Serialization;

final class JsonSafeCompressedPhpSerialization implements JsonSafeCompressingObjectAwareSerializationInterface {

  public static function encode($data) {
    $serialized = serialize($data);
    // Max compression, with no metadata overhead.
    $serializedCompressed = gzdeflate($serialized, level: 9)
      ?: new \UnexpectedValueException('Compression error.');
    $serializedCompressedBase64 = base64_encode($serializedCompressed);
    return $serializedCompressedBase64;
  }

  public static function decode($raw) {
    $serializedCompressed = base64_decode($raw)
      ?: new \UnexpectedValueException('Base64 decode error.');
    $serialized = gzinflate($serializedCompressed)
      ?: new \UnexpectedValueException('Gzip inflate error.');
    return unserialize($serialized);
  }

  public static function getFileExtension() {
    return 'serialized.gzdeflate.b64';
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc