public function load($filename, __Configuration &$configuration) { //Set the name for current __Configuration as the name of configuration file: $configuration->setName(strtoupper(basename($filename))); if (!file_exists($filename)) { throw new __ConfigurationException('Configuration file not found: "' . $filename . '"'); } $current_section =& $configuration; $configuration_array = parse_ini_file($filename, true); if ($configuration_array === false) { throw new __ConfigurationException('Unknow configuration file format for : "' . $filename . '"'); } foreach ($configuration_array as $key => $value) { if (is_array($value)) { $current_section =& $configuration->createSection($key); foreach ($value as $property => $content) { $current_section->createProperty($property, $content); } } else { $current_section->createProperty($key, $value); } } }