के साथ डीबी को एकाधिक कनेक्शन खोलने से कैसे बचें मैं 4 साल से अधिक के लिए एक प्रक्रियात्मक प्रोग्रामर रहा हूं और ओओपी में देखना शुरू करने का समय है। इसके साथ, मान लें कि मुझे अपनी कक्षा में दो तरीकों को कॉल करने की आवश्यकता है। प्रत्येक विधि को डीबी से कनेक्शन की आवश्यकता होती है ताकि डीबी के लिए दो यात्राएं हों, जो कई कनेक्शन भी खुलती हैं। क्या यह एप्लिकेशन परत (कन्स्ट्रक्टर?) में किसी प्रकार का कोड रखने से बचा जा सकता है या क्या डीबी पक्ष पर एक कनेक्शन पूल स्थापित किया जाना चाहिए? और सिर्फ kicks के लिए, मैं mysql का उपयोग नहीं कर रहा हूँ; मैं codeigniter के साथ mongodb का उपयोग कर रहा हूँ।ओओपी PHP
यहां तक कि मेरे पास अभी तक क्या है, यह सुनिश्चित नहीं है कि इसका उपयोग करना आदर्श है या नहीं?
यहाँ है जहाँ मैं सेटअप मेरे डीबी सूचना यह है:
database_conn.php
class Database_Conn extends Model {
function _connect() {
$m = new Mongo("localhost:27017", array("persist"=>"x"));
$db = $m->selectDB("foo");
return $db;
}
}
नमूना मॉडल फ़ाइल
class Home_model extends Model {
public function __construct() {
// Establish connection to "profiles" table
$this->db_conn = Database_Conn::_connect()->selectCollection("profiles");
}
function getMyProfile($username) {
$data = $this->db_conn->findOne(array("username" => $username));
return $data;
}
function getAll() {
$data = $this->db_conn->find();
return $data;
}
}
मैंने सोचा कि यह उन ऐप्स के लिए खराब है जिन्हें अंततः स्केल करने की आवश्यकता है? – luckytaxi
सिंगलटन एक ऑब्जेक्ट बनाने का एक तरीका है जो तुरंत एक बार तत्काल होता है। यह स्केलेबिलिटी कैसे कम कर सकता है? कृपया मुझे बताएं) –
क्षमा करें, मैं कुछ और सोच रहा था (पूछो नहीं)। मैं समझता हूं कि आप क्या कह रहे हैं, मुझे लगता है कि मैं अब कर रहा हूं। ऊपर मेरे कोड पर एक नज़र डालें। धन्यवाद। – luckytaxi