1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Cache\Marshaller; 13 14/** 15 * Serializes/unserializes PHP values. 16 * 17 * Implementations of this interface MUST deal with errors carefully. They MUST 18 * also deal with forward and backward compatibility at the storage format level. 19 * 20 * @author Nicolas Grekas <p@tchwork.com> 21 */ 22interface MarshallerInterface 23{ 24 /** 25 * Serializes a list of values. 26 * 27 * When serialization fails for a specific value, no exception should be 28 * thrown. Instead, its key should be listed in $failed. 29 */ 30 public function marshall(array $values, ?array &$failed): array; 31 32 /** 33 * Unserializes a single value and throws an exception if anything goes wrong. 34 * 35 * @return mixed 36 * 37 * @throws \Exception Whenever unserialization fails 38 */ 39 public function unmarshall(string $value); 40} 41