/** * ArrayAccess; Returns the value at specified offset, loading the section if needed. * * @param string $key * @return Config_File */ public function offsetGet($key) { if (parent::offsetExists($key)) { return parent::offsetGet($key); } $dirname = "{$this->_path}/{$key}"; $filename = "{$dirname}.{$this->_ext}"; $options = array(); if ($this->_transformer) { $options['transformer'] = $this->_transformer; } if (is_dir($dirname)) { parent::offsetSet($key, new Config_Dir(Fs::dir($dirname), $options)); } elseif (file_exists($filename)) { parent::offsetSet($key, new Config_File(Fs::file($filename), $options)); } else { trigger_error("Configuration section '{$key}' doesn't exist for '{$this->_path}'", E_WARNING); return null; } return parent::offsetGet($key); }