コード例 #1
0
ファイル: Constant.php プロジェクト: pmaxs/config
 /**
  * {@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;
 }
コード例 #2
0
ファイル: Loader.php プロジェクト: pmaxs/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;
 }
コード例 #3
0
ファイル: FileLoader.php プロジェクト: pmaxs/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;
 }
コード例 #4
0
ファイル: Parameter.php プロジェクト: pmaxs/config
 /**
  * {@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;
 }