मैं आम तौर पर नियमित रूप से गैर स्थिर कक्षाओं को लिखना पसंद करता हूं और ऑब्जेक्ट के एकल (सुडोकू स्थिर) उदाहरणों को इंस्टेंट करने के लिए फ़ैक्टरी क्लास का उपयोग करता हूं।
इस तरह से निर्माणकर्ता और विध्वंसक सामान्य रूप से काम करते हैं, और अगर मैं चाहूँ तो मैं अतिरिक्त गैर स्थिर उदाहरण बना सकता हूँ (उदाहरण के लिए एक दूसरा DBX)
मैं हर समय इसका उपयोग करता हूं और विशेष रूप से कस्टम डीबी स्टोर सत्र संचालकों को बनाने के लिए उपयोगी है, क्योंकि जब पृष्ठ समाप्त हो जाता है तो विनाशकारी सत्र को डेटाबेस में धकेल देगा।
एक और लाभ यह है कि आप ऑर्डर को अनदेखा कर सकते हैं क्योंकि आप चीजों को कॉल करते हैं क्योंकि सब कुछ मांग पर सेटअप होगा।
class Factory {
static function &getDB ($construct_params = null)
{
static $instance;
if( ! is_object($instance) )
{
include_once("clsDB.php");
$instance = new clsDB($construct_params); // constructor will be called
}
return $instance;
}
}
DB वर्ग ...
class clsDB {
$regular_public_variables = "whatever";
function __construct($construct_params) {...}
function __destruct() {...}
function getvar() { return $this->regular_public_variables; }
}
कहीं भी आप इसे केवल कॉल का उपयोग करना चाहते हैं ...
$static_instance = &Factory::getDB($somekickoff);
फिर सभी तरीकों को गैर स्थिर मानें (क्योंकि वे हैं)
echo $static_instance->getvar();