Changeset View
Changeset View
Standalone View
Standalone View
conf/__init_conf__.php
| <?php | <?php | ||||
| function phabricator_read_config_file($original_config) { | function phabricator_read_config_file($original_config) { | ||||
| $root = dirname(dirname(__FILE__)); | $root = dirname(dirname(__FILE__)); | ||||
| // Accept either "myconfig" (preferred) or "myconfig.conf.php". | // Accept either "myconfig" (preferred) or "myconfig.conf.php". | ||||
| $config = preg_replace('/\.conf\.php$/', '', $original_config); | $config = preg_replace('/\.conf\.php$/', '', $original_config); | ||||
| $full_config_path = $root.'/conf/'.$config.'.conf.php'; | $full_config_path = $root.'/conf/'.$config.'.conf.php'; | ||||
| if (!Filesystem::pathExists($full_config_path)) { | if (!Filesystem::pathExists($full_config_path)) { | ||||
| // These are very old configuration files which we used to ship with | // These are very old configuration files which we used to ship with | ||||
| // by default. File based configuration was de-emphasized once web-based | // by default. File based configuration was de-emphasized once web-based | ||||
| // configuration was built. The actual files were removed to reduce | // configuration was built. The actual files were removed to reduce | ||||
| // user confusion over how to configure Phabricator. | // user confusion over how to configure Phabricator. | ||||
| switch ($config) { | switch ($config) { | ||||
| case 'default': | case 'default': | ||||
| case 'production': | case 'production': | ||||
| Show All 11 Lines | $files = id(new FileFinder($root.'/conf/')) | ||||
| ->withSuffix('conf.php') | ->withSuffix('conf.php') | ||||
| ->withFollowSymlinks(true) | ->withFollowSymlinks(true) | ||||
| ->find(); | ->find(); | ||||
| foreach ($files as $key => $file) { | foreach ($files as $key => $file) { | ||||
| $file = trim($file, './'); | $file = trim($file, './'); | ||||
| $files[$key] = preg_replace('/\.conf\.php$/', '', $file); | $files[$key] = preg_replace('/\.conf\.php$/', '', $file); | ||||
| } | } | ||||
| $files = " ".implode("\n ", $files); | $files = ' '.implode("\n ", $files); | ||||
| throw new Exception( | throw new Exception( | ||||
| pht( | |||||
| "CONFIGURATION ERROR\n". | "CONFIGURATION ERROR\n". | ||||
| "Config file '{$original_config}' does not exist. Valid config files ". | "Config file '%s' does not exist. Valid config files are:\n\n%s", | ||||
| "are:\n\n".$files); | $original_config, | ||||
| $files)); | |||||
| } | } | ||||
| // Make sure config file errors are reported. | // Make sure config file errors are reported. | ||||
| $old_error_level = error_reporting(E_ALL | E_STRICT); | $old_error_level = error_reporting(E_ALL | E_STRICT); | ||||
| $old_display_errors = ini_get('display_errors'); | $old_display_errors = ini_get('display_errors'); | ||||
| ini_set('display_errors', 1); | ini_set('display_errors', 1); | ||||
| ob_start(); | ob_start(); | ||||
| $conf = include $full_config_path; | $conf = include $full_config_path; | ||||
| $errors = ob_get_clean(); | $errors = ob_get_clean(); | ||||
| error_reporting($old_error_level); | error_reporting($old_error_level); | ||||
| ini_set('display_errors', $old_display_errors); | ini_set('display_errors', $old_display_errors); | ||||
| if ($conf === false) { | if ($conf === false) { | ||||
| throw new Exception("Failed to read config file '{$config}': {$errors}"); | throw new Exception( | ||||
| pht( | |||||
| "Failed to read config file '%s': %s", | |||||
| $config, | |||||
| $errors)); | |||||
| } | } | ||||
| return $conf; | return $conf; | ||||
| } | } | ||||