Zasadniczo jedno z największych pytań wszechczasów: w jaki sposób korzystasz z settings.php w procesie projektowania / przemieszczania?
W tej chwili mam skonfigurowany mój plik settings.php i opieram swój rozwój na dyrektywie $ HOST serwera - co oznacza, że mogę pracować na dev.example.com dla serwera programistycznego (udostępnionego), local.example. com na moim komputerze lokalnym (i kasach lokalnych deweloperów) oraz www.example.com (lub po prostu example.com) na stronie na żywo.
(Ten kod znajduje się w sekcji „Ustawienia bazy danych” w pliku settings.php):
$host = $_SERVER['HTTP_HOST'];
$base_url = 'http://'.$host;
$cookie_domain = $host;
switch($host) {
case 'example.com': # Production server
$db_url = 'mysqli://prod_sql_user:password@127.0.0.1/prod_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
);
break;
case 'dev.example.com': # Development server
$db_url = 'mysqli://dev_sql_user:password@127.0.0.1/dev_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
);
break;
case 'local.example.com': # Local server
$db_url = 'mysqli://local_sql_user:password@127.0.0.1/local_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
// Turn off most core caching.
'cache_inc' => 'includes/cache.inc',
'cache' => CACHE_DISABLED,
);
break;
}
?>
Działa to całkiem dobrze do większości celów, ale oznacza to, że mamy dużo obcego kodu siedzącego w naszym wspólnym pliku settings.php ... czy jest lepszy sposób?