'SelfEmployedRequestConfirmationRedirect', ]; /** * Возвращает объект, соответствующий типу подтверждения платежа. * * @param string $type Код сценария подтверждения */ public function factory(string $type): SelfEmployedRequestConfirmation { if (!array_key_exists($type, $this->typeClassMap)) { throw new InvalidArgumentException('Invalid confirmation value type "' . $type . '"'); } $className = __NAMESPACE__ . '\\' . $this->typeClassMap[$type]; return new $className(); } /** * Возвращает объект, соответствующий типу подтверждения платежа, из массива данных. * * @param array $data Массив данных подтверждения платежа * @param null|string $type Код сценария подтверждения * * @return SelfEmployedRequestConfirmation */ public function factoryFromArray(array $data, ?string $type = null): SelfEmployedRequestConfirmation { if (null === $type) { if (array_key_exists('type', $data)) { $type = $data['type']; unset($data['type']); } else { throw new InvalidArgumentException( 'Parameter type not specified in SelfEmployedRequestConfirmation.factoryFromArray()' ); } } $confirmation = $this->factory($type); foreach ($data as $key => $value) { if ($confirmation->offsetExists($key)) { $confirmation->offsetSet($key, $value); } } return $confirmation; } }