पर आधारित डेटाबेस कॉन्फ़िगरेशन केकपीएचपी में पर्यावरण के आधार पर उपयोग किए जाने वाले एकाधिक डेटाबेस कॉन्फ़िगरेशन का सबसे अच्छा तरीका क्या है?केकपीएचपी - यूआरएल
कहें कि मेरे पास एक स्टेजिंग, प्रोड और देव सर्वर है।
धन्यवाद,
टी
पर आधारित डेटाबेस कॉन्फ़िगरेशन केकपीएचपी में पर्यावरण के आधार पर उपयोग किए जाने वाले एकाधिक डेटाबेस कॉन्फ़िगरेशन का सबसे अच्छा तरीका क्या है?केकपीएचपी - यूआरएल
कहें कि मेरे पास एक स्टेजिंग, प्रोड और देव सर्वर है।
धन्यवाद,
टी
आप अपने निर्माता में सेट कर सकते हैं।
class DATABASE_CONFIG {
var $live = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'mysql.live.com',
'login' => 'root',
'password' => '',
'database' => '',
'prefix' => '',
);
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => '',
'prefix' => '',
);
public function __construct() {
if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) {
if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {
$this->default = $this->live;
}
}
}
}
यह मूल रूप से आपके कॉन्फ़िगरेशन को उस स्थान के आधार पर स्विच करेगा जहां आप हैं।
मुझे यह मिला (मेरा विकास डोमेन '.dev' के साथ समाप्त होता है);
Bootstrap.php
define('IS_LIVE',!(strpos($_SERVER['SERVER_NAME'], 'dev') !== false));
में database.php
<?php
class DATABASE_CONFIG
{
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'login' => 'xxxx',
'password' => 'xxxx',
'database' => 'xxxx',
'prefix' => '',
);
var $production = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'login' => 'xxx',
'password' => 'xxx',
'database' => 'xxxx',
'prefix' => '',
);
function __construct()
{
if (IS_LIVE) {
$this->default = $this->production;
} else {
$this->default = $this->default;
}
}
}
भयानक समाधान, धन्यवाद में! – joseym
मुझे यह महान लेख मिला जो पर्यावरण के आधार पर डीबी प्रोफाइल प्रबंधित करने की इस विधि को स्थापित करने का एक बहुत ही मजबूत तरीका प्रदान करता है: http://www.sitepoint.com/deploy-cakephp-apps-on-appfog-the-right- रास्ता/ –