আমি সাধারণত নিয়মিত নন স্ট্যাটিক ক্লাস লিখতে পছন্দ করি এবং অবজেক্টের একক (সুডো স্ট্যাটিক) দৃষ্টান্ত ইনস্ট্যান্ট করতে কারখানা শ্রেণি ব্যবহার করি।
এই পদ্ধতিতে নির্মাতা এবং ডেস্ট্রাক্টর স্বাভাবিক হিসাবে কাজ করে এবং আমি চাইলে আমি অতিরিক্ত অ স্ট্যাটিক উদাহরণ তৈরি করতে পারি (উদাহরণস্বরূপ দ্বিতীয় ডিবি সংযোগ)
আমি এটি সর্বদা ব্যবহার করি এবং কাস্টম ডিবি স্টোর সেশন হ্যান্ডলারগুলি তৈরি করার জন্য বিশেষভাবে দরকারী, যখন পৃষ্ঠাটি ডেস্ট্রাক্টরকে সমাপ্ত করে সেশনটি ডাটাবেসে ঠেলে দেবে।
আর একটি সুবিধা হ'ল আপনি যে জিনিসগুলিকে কল করেছেন সেই আদেশটিকে উপেক্ষা করতে পারবেন কারণ চাহিদা অনুযায়ী সবকিছুই সেটআপ হয়ে যাবে।
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;
}
}
ডিবি ক্লাস ...
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();