![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/rentpix.corals.io/vendor/darkaonline/l5-swagger/src/ |
<?php namespace L5Swagger; use L5Swagger\Exceptions\L5SwaggerException; class ConfigFactory { /** * Get documentation config. * * @param string|null $documentation * @return array * * @throws L5SwaggerException */ public function documentationConfig(?string $documentation = null): array { if ($documentation === null) { $documentation = config('l5-swagger.default'); } $defaults = config('l5-swagger.defaults', []); $documentations = config('l5-swagger.documentations', []); if (! isset($documentations[$documentation])) { throw new L5SwaggerException('Documentation config not found'); } return $this->mergeConfig($defaults, $documentations[$documentation]); } private function mergeConfig(array $defaults, array $config): array { $merged = $defaults; foreach ($config as $key => &$value) { if (isset($defaults[$key]) && $this->isAssociativeArray($defaults[$key]) && $this->isAssociativeArray($value) ) { $merged[$key] = $this->mergeConfig($defaults[$key], $value); continue; } $merged[$key] = $value; } return $merged; } private function isAssociativeArray($value): bool { return is_array($value) && count(array_filter(array_keys($value), 'is_string')) > 0; } }