disposable-mailbox-3/src/config_helper.php
Aravindo Wingeier 32edf54eda
Feature/removed router (#83)
* CHANGE: refactoring to simplify application, removed router layer
REMOVED: JSON api
* add licence info
2019-03-11 01:09:24 +07:00

38 lines
1.2 KiB
PHP

<?php
/**
* searches for a config-file in the current and parent directories until found.
* @return path to found config file, or FALSE otherwise.
*/
function find_config($filename='config.php'){
// Count the deph of the current directory, so we know how far we can go up.
$path_length = substr_count(getcwd(),DIRECTORY_SEPARATOR)
+ 1; // also search the current directory
$dir = '.'; // updated in each loop
for($i=0; $i<$path_length;$i++){
$config_filename = $dir . DIRECTORY_SEPARATOR . $filename;
if(file_exists($config_filename)){
return $config_filename;
} else {
$dir = '../' . $dir;
}
}
return FALSE;
}
/**
* searches and loads the config file. Prints an error if not found.
*/
function load_config(){
global $config;
$file = find_config();
if ( $file !== FALSE) {
require_once($file);
if(!isset($config) || !is_array($config)){
die('ERROR: Config file is invalid. Please see the installation instructions in the README.md');
}
} else {
die('ERROR: Config file not found. Please see the installation instructions in the README.md');
}
}