ILIAS  release_7 Revision v7.30-3-g800a261c036
SerializerFactory.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
21
22use InvalidArgumentException;
23
29{
33 private static $core_instance;
37 private static $plugin_instance;
38
39 public function core() : CoreSerializer
40 {
41 if (!isset(self::$core_instance)) {
42 self::$core_instance = new CoreSerializer();
43 }
44
46 }
47
48 public function plugin() : PluginSerializer
49 {
50 if (!isset(self::$plugin_instance)) {
51 self::$plugin_instance = new PluginSerializer();
52 }
53
55 }
56
61 public function fromSerializedIdentification(string $serialized_identification) : SerializerInterface
62 {
63 $plugin = $this->plugin();
64 if ($plugin->canHandle($serialized_identification)) {
65 return $plugin;
66 }
67
68 $core = $this->core();
69 if ($core->canHandle($serialized_identification)) {
70 return $core;
71 }
72
73 throw new InvalidArgumentException("Nobody can handle serialized identification '$serialized_identification'.");
74 }
75}
An exception for terminatinating execution or to throw for unit testing.