HEX
Server: nginx
System: Linux pool195-106-36.bur.atomicsites.net 6.12.57+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.57-1~bpo12+1 (2025-11-17) x86_64
User: (0)
PHP: 8.3.32
Disabled: pcntl_fork
Upload Files
File: //wordpress/plugins/jetpack/16.0/jetpack_vendor/automattic/jetpack-sync/src/class-simple-codec.php
<?php
/**
 * Simple codec for encoding and decoding sync objects.
 *
 * @package automattic/jetpack-sync
 */

namespace Automattic\Jetpack\Sync;

if ( ! defined( 'ABSPATH' ) ) {
	exit( 0 );
}

/**
 * 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 ) );
	}
}