Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Simple_Codec
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 3
12
0.00% covered (danger)
0.00%
0 / 1
 name
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 encode
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 decode
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * Simple codec for encoding and decoding sync objects.
4 *
5 * @package automattic/jetpack-sync
6 */
7
8namespace Automattic\Jetpack\Sync;
9
10if ( ! defined( 'ABSPATH' ) ) {
11    exit( 0 );
12}
13
14/**
15 * An implementation of Automattic\Jetpack\Sync\Codec_Interface that uses base64
16 * algorithm to compress objects serialized using json_encode.
17 */
18class Simple_Codec extends JSON_Deflate_Array_Codec {
19    /**
20     * Name of the codec.
21     *
22     * @access public
23     *
24     * @var string
25     */
26    const CODEC_NAME = 'simple';
27
28    /**
29     * Retrieve the name of the codec.
30     *
31     * @access public
32     *
33     * @return string Name of the codec.
34     */
35    public function name() {
36        return self::CODEC_NAME;
37    }
38
39    /**
40     * Encode a sync object.
41     *
42     * @access public
43     *
44     * @param mixed $object Sync object to encode.
45     * @return string Encoded sync object.
46     */
47    public function encode( $object ) {
48        // This is intentionally using base64_encode().
49        // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode
50        return base64_encode( $this->json_serialize( $object ) );
51    }
52
53    /**
54     * Encode a sync object.
55     *
56     * @access public
57     *
58     * @param string $input Encoded sync object to decode.
59     * @return mixed Decoded sync object.
60     */
61    public function decode( $input ) {
62        // This is intentionally using base64_decode().
63        // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
64        return $this->json_unserialize( base64_decode( $input ) );
65    }
66}