$v) { $cloned->$k = self::cloneObjectItem($v); } return $cloned; } /** * @param mixed $item * @return mixed */ private static function cloneObjectItem($item) { if (is_array($item)) { $cloned = []; foreach ($item as $v) { $cloned[] = self::cloneObjectItem($v); } return $cloned; } if ($item instanceof stdClass) { return self::cloneObject($item); } if (is_object($item)) { return clone $item; } return $item; } public function obtainIpFromRequest(Request $request): ?string { $param = $this->config->get('ipAddressServerParam') ?? 'REMOTE_ADDR'; return $request->getServerParam($param); } }