/** * {@inheritdoc} */ public function deserialize(string $state) : Serializable { $data = json_decode($state, true); $keys = ['@', '$']; foreach ($keys as $key) { if (!isset($data[$key])) { $message = sprintf('Invalid serialization format: %s', $state); throw new DomainException($message); } } $class = ClassName::full($data['@']); assert(Validate::implementsInterface($class, Serializable::class), sprintf('Unable to deserialize: %s', $class)); return $class::deserialize($data['$']); }
/** * Retrieves the full class name * * @return string */ public function toClassName() : string { return ClassName::full($this->name); }
/** * @expectedException \Novuso\System\Exception\TypeException */ public function test_that_full_throws_exception_for_invalid_argument_type() { ClassName::full(null); }