cdd6c4022ca4fb9461e9b19e65a8f9354d848118
[friendica-addons.git/.git] / advancedcontentfilter / vendor / symfony / cache / Marshaller / MarshallerInterface.php
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
12 namespace 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  */
22 interface 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 }