_configurations[$name] = $config; return; } if ($config === false) { unset($this->_configurations[$name]); } } /** * Gets an array of settings for the given named configuration in the current * environment. * * @see lithium\core\Environment * @param string $name Name of the configuration. * @return array Settings of the named configuration. */ public function get($name = null) { if ($name === null) { $result = []; $this->_configurations = array_filter($this->_configurations); foreach ($this->_configurations as $key => $value) { $result[$key] = $this->get($key); } return $result; } $settings = &$this->_configurations; if (!isset($settings[$name])) { return null; } if (isset($settings[$name][0])) { return $settings[$name][0]; } $env = Environment::get(); $config = isset($settings[$name][$env]) ? $settings[$name][$env] : $settings[$name]; $method = is_callable($this->initConfig) ? $this->initConfig : null; $settings[$name][0] = $method ? $method($name, $config) : $config; return $settings[$name][0]; } /** * Clears all configurations. */ public function reset() { $this->_configurations = []; } } ?>