सबकी अपनी-अपनी पसंद होती है। मैं अपनी डीबी सेटिंग्स को वेबूट के बाहर एक .ini में स्टोर करना पसंद करता हूं और फिर इसे 0600 chmod मान देता हूं, ताकि किसी को भी इसे पढ़ने वाले मालिक को रोका जा सके।
एक उदाहरण .ini इस तरह दिखेगा:
[database]
driver = mysql
host = localhost
;port = 3306
schema = yourdbname
username = dbusername
password = some_pass
फिर आप php फ़ंक्शन का उपयोग कर सकते हैं parse_ini_file
फिर अपने कंस्ट्रक्टर में आपने उसे पढ़ा और उसे एक सरणी में पार्स किया:
public function __construct($file = 'dbsettings.ini')
{
// @todo: change this path to be consistent with outside your webroot
$file = '../' . $file;
if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');
$dns = $settings['database']['driver'] .
':host=' . $settings['database']['host'] .
((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
';dbname=' . $settings['database']['schema'];
// if not PDO, this part needs to be changed parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
}
और वायोला, आपके पास अपना डेटाबेस कनेक्शन सेटअप करने का एक सरल और सुरक्षित तरीका है। यह वर्ग पीडीओ एक्सटेंडर क्लास से लिया गया था, इसलिए यदि आप पीडीओ का उपयोग नहीं कर रहे हैं तो आपको उस लाइन को बदलने की जरूरत है, लेकिन जैसा कि आप देख सकते हैं कि आपको $settings
में यूजरनेम आदि मिलता है। सरणी।
मैं किसी भी प्रकार की डेटाबेस जानकारी को CONSTANT
. में संग्रहीत करने से अत्यधिक बचूंगा या GLOBAL
चर प्रकार। इस तरह, $settings
केवल उस वर्ग फ़ंक्शन के लिए उपलब्ध है और कुछ भी नहीं, अतिरिक्त सुरक्षा परत प्रदान करता है।