โดยทั่วไปแล้วหนึ่งในคำถามที่ยิ่งใหญ่ที่สุดตลอดกาล: มีวิธีใดบ้างที่คุณใช้ settings.php ในขั้นตอนการพัฒนา / จัดเตรียมเวิร์กโฟลว์
ตอนนี้ฉันมีไฟล์ settings.php ของฉันตั้งค่าดังต่อไปนี้และฉันยึดการพัฒนาของฉันตามคำสั่ง $ HOST ของเซิร์ฟเวอร์ - หมายถึงฉันสามารถทำงานบน dev.example.com สำหรับเซิร์ฟเวอร์การพัฒนา (แชร์), local.example com สำหรับคอมพิวเตอร์ในพื้นที่ของฉัน (และการตรวจสอบรหัสท้องถิ่นอื่น ๆ ของ dev) และ www.example.com (หรือเพียงแค่ example.com) สำหรับไซต์สด
(รหัสนี้อยู่ในส่วน 'การตั้งค่าฐานข้อมูล' ของ 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;
}
?>
วิธีนี้ใช้งานได้ดีสำหรับวัตถุประสงค์ส่วนใหญ่ แต่หมายความว่าเรามีรหัสที่ไม่เกี่ยวข้องมากมายในไฟล์ settings.php ที่แชร์ของเรา ... มีวิธีที่ดีกว่านี้ไหม