arrayManager = $arrayManager; $this->placeholder = $placeholderFactory->create(PlaceholderFactory::TYPE_ENVIRONMENT); } /** * @inheritdoc * @since 101.0.0 */ public function get($path = '') { $data = new DataObject($this->loadConfig()); return $data->getData($path) ?: []; } /** * Loads config from environment variables. * * @return array */ private function loadConfig() { $config = []; $environmentVariables = $_ENV; foreach ($environmentVariables as $template => $value) { if (!$this->placeholder->isApplicable($template)) { continue; } $config = $this->arrayManager->set( $this->placeholder->restore($template), $config, $value ); } return $config; } }