/** * {@inheritdoc} */ public function process(Config $config) { $map = $this->getMap(); $data = $config->getData(); \array_walk_recursive($data, function (&$v, $k) use($map) { $v = \strtr($v, $map); }); $config->setData($data); return $config; }
/** * @inheritdoc * @param mixed $resources */ public function load($resources, $type = null) { $config = new Config(); $config->setData($this->vars); foreach ((array) $resources as $resource) { $config->merge(parent::load($resource, $type)); } foreach ($this->processors as $processor) { $processor->process($config); } return $config; }
/** * Parse config * @param Config $config * @param array $data * @param $type * @return $this */ protected function processData(Config $config, $data, $type = null) { if (\array_key_exists('imports', $data)) { $import = $data['imports']; unset($data['imports']); } if (!empty($import) && \is_array($import)) { if (isset($import['resource'])) { $config1 = $this->import($import['resource'], $type); $config->merge($config1, isset($import['prefix']) ? $import['prefix'] : null); } else { foreach ($import as $import1) { $config1 = $this->import($import1['resource'], $type); $config->merge($config1, isset($import1['prefix']) ? $import1['prefix'] : null); } } } $config->addData($data); return $this; }
/** * {@inheritdoc} */ public function process(Config $config) { $data = $config->getData(); $propertyAccessor = \Symfony\Component\PropertyAccess\PropertyAccess::createPropertyAccessor(); $flatten = array(); $this->flattenArray($data, $flatten); $parameters = array(); foreach ($flatten as $k => $v) { $parameters[$k] = $v['value']; } $this->clear(); $this->add($parameters); $this->resolved = false; $this->resolve(); $parameters = $this->all(); foreach ($parameters as $k => $v) { if ($v === $flatten[$k]['value']) { continue; } $propertyAccessor->setValue($data, $flatten[$k]['path'], $v); } $config->setData($data); return $config; }