3 namespace Wikimedia\ObjectCache
;
8 * Helper class for segmenting large cache values without relying
9 * on serializing classes.
15 class SerializedValueContainer
{
16 private const SCHEMA
= '__svc_schema__';
18 private const SCHEMA_SEGMENTED
= 'CAYCDAgCDw4';
19 public const SEGMENTED_HASHES
= '__hashes__';
22 * @param string[] $segmentHashList Ordered list of hashes for each segment
25 public static function newSegmented( array $segmentHashList ) {
27 self
::SCHEMA
=> self
::SCHEMA_SEGMENTED
,
28 self
::SEGMENTED_HASHES
=> $segmentHashList
36 public static function isSegmented( $value ): bool {
38 $value instanceof stdClass
&&
39 ( $value->{self
::SCHEMA
} ??
null ) === self
::SCHEMA_SEGMENTED