/** * Support function -- load the main configuration options, overriding with * custom local settings if applicable. * * @param string $basePath Optional base path to config files. * * @return array The desired config.ini settings in array format. */ function readConfig($basePath = 'conf') { $mainArray = parse_ini_file($basePath . '/config.ini', true); if (isset($mainArray['Extra_Config']) && isset($mainArray['Extra_Config']['local_overrides'])) { $file = trim($basePath . '/' . $mainArray['Extra_Config']['local_overrides']); $localOverride = @parse_ini_file($file, true); if ($localOverride) { $mainArray = iniMerge($mainArray, $localOverride); } } // Auto-detect the base URL if it is not provided in the configuration: if (!isset($mainArray['Site']['url']) || empty($mainArray['Site']['url'])) { $mainArray['Site']['url'] = determineSiteUrl($mainArray); } return $mainArray; }
/** * Support function -- load the main configuration options, overriding with * custom local settings if applicable. * * @param string $basePath Optional base path to config files. * @param string $filename Optional config file name override. * * @return array The desired config.ini settings in array format. */ function readConfig($basePath = 'conf', $filename = '') { $mainArray = parse_ini_file($filename ? $filename : $basePath . '/config.ini', true); if (isset($mainArray['Extra_Config']) && isset($mainArray['Extra_Config']['local_overrides'])) { $file = trim($basePath . '/' . $mainArray['Extra_Config']['local_overrides']); $localOverride = @parse_ini_file($file, true); if ($localOverride) { $mainArray = iniMerge($mainArray, $localOverride); } } // Auto-detect the base URL if it is not provided in the configuration: if (!isset($mainArray['Site']['url']) || empty($mainArray['Site']['url'])) { $mainArray['Site']['url'] = determineSiteUrl($mainArray); } // Auto-detect local web installation path if it is not provided if (!isset($mainArray['Site']['local']) || empty($mainArray['Site']['local'])) { $mainArray['Site']['local'] = realpath(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..'); } // Auto-detect absolute path to database schema and class if necessary if (isRelativeFilePath($mainArray['Database']['schema_location'])) { $mainArray['Database']['schema_location'] = realpath($mainArray['Site']['local'] . DIRECTORY_SEPARATOR . $mainArray['Database']['schema_location']); } if (isRelativeFilePath($mainArray['Database']['class_location'])) { $mainArray['Database']['class_location'] = realpath($mainArray['Site']['local'] . DIRECTORY_SEPARATOR . $mainArray['Database']['class_location']); } return $mainArray; }