diff options
Diffstat (limited to 'plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php')
-rw-r--r-- | plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php new file mode 100644 index 00000000..613323fd --- /dev/null +++ b/plugins/jetpack/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php @@ -0,0 +1,63 @@ +<?php +/** + * Simple codec for encoding and decoding sync objects. + * + * @package automattic/jetpack-sync + */ + +namespace Automattic\Jetpack\Sync; + +/** + * An implementation of Automattic\Jetpack\Sync\Codec_Interface that uses base64 + * algorithm to compress objects serialized using json_encode. + */ +class Simple_Codec extends JSON_Deflate_Array_Codec { + /** + * Name of the codec. + * + * @access public + * + * @var string + */ + const CODEC_NAME = 'simple'; + + /** + * Retrieve the name of the codec. + * + * @access public + * + * @return string Name of the codec. + */ + public function name() { + return self::CODEC_NAME; + } + + /** + * Encode a sync object. + * + * @access public + * + * @param mixed $object Sync object to encode. + * @return string Encoded sync object. + */ + public function encode( $object ) { + // This is intentionally using base64_encode(). + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode + return base64_encode( $this->json_serialize( $object ) ); + } + + /** + * Encode a sync object. + * + * @access public + * + * @param string $input Encoded sync object to decode. + * @return mixed Decoded sync object. + */ + public function decode( $input ) { + // This is intentionally using base64_decode(). + // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode + return $this->json_unserialize( base64_decode( $input ) ); + } + +} |