added support for environment configuration files.

This commit is contained in:
Taylor Otwell 2011-07-25 22:47:33 -05:00
parent 2c774adbde
commit 8356151f71
4 changed files with 15 additions and 4 deletions

2
application/config/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
local/*
staging/*

View File

@ -0,0 +1 @@
*.sqlite

View File

@ -15,8 +15,9 @@
define('BASE_PATH', realpath('../').'/'); define('BASE_PATH', realpath('../').'/');
define('APP_PATH', realpath('../application').'/'); define('APP_PATH', realpath('../application').'/');
define('SYS_PATH', realpath('../system').'/'); define('SYS_PATH', realpath('../system').'/');
define('PUBLIC_PATH', realpath(__DIR__.'/')); define('CONFIG_PATH', APP_PATH.'config/');
define('PACKAGE_PATH', APP_PATH.'packages/'); define('PACKAGE_PATH', APP_PATH.'packages/');
define('PUBLIC_PATH', realpath(__DIR__.'/'));
// -------------------------------------------------------------- // --------------------------------------------------------------
// Define the PHP file extension. // Define the PHP file extension.

View File

@ -95,17 +95,24 @@ private static function parse($key)
/** /**
* Load all of the configuration items from a file. * Load all of the configuration items from a file.
* *
* If it exists, the configuration file in the application/config directory will be loaded first.
* Any environment specific configuration files will be merged with the root file.
*
* @param string $file * @param string $file
* @return void * @return void
*/ */
public static function load($file) public static function load($file)
{ {
$directory = (isset($_SERVER['LARAVEL_ENV'])) ? $_SERVER['LARAVEL_ENV'].'/' : ''; if (array_key_exists($file, static::$items)) return;
if ( ! array_key_exists($file, static::$items) and file_exists($path = APP_PATH.'config/'.$directory.$file.EXT)) $config = (file_exists($path = CONFIG_PATH.$file.EXT)) ? require $path : array();
if (isset($_SERVER['LARAVEL_ENV']) and file_exists($path = CONFIG_PATH.$_SERVER['LARAVEL_ENV'].'/'.$file.EXT))
{ {
static::$items[$file] = require $path; $config = array_merge($config, require $path);
} }
return static::$items[$file] = $config;
} }
} }