अपने MVC फ्रेमवर्क में सभी मॉडलों के पैरेंट को लागू करना

आइए सभी मॉडलों का पैरेंट क्लास लागू करते हैं:

/core/Model.php<?php
  namespace Core;
  
  class Model
  {
    private $link;
    
    public function __construct()
    {
      $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
      mysqli_query($this->link, "SET NAMES 'utf8'");
    }
    
    protected function findOne($query)
    {
      // यहाँ कुछ कोड होगा
    }
    
    protected function findMany($query)
    {
      // यहाँ कुछ कोड होगा
    }
  }
?>

जैसा कि आप देख सकते हैं, क्लास के कंस्ट्रक्टर में हम डेटाबेस से कनेक्शन स्थापित कर रहे हैं। हालाँकि, एक समस्या है: प्रत्येक बनाया गया मॉडल (यदि एक ही कंट्रोलर एक्शन के भीतर कई मॉडल होंगे) डेटाबेस के लिए अपना कनेक्शन बनाएगा, और यह इष्टतम नहीं है।

आइए इसे इस तरह बनाते हैं कि डेटाबेस से कनेक्शन केवल पहले बनाए गए मॉडल के लिए बने, और बाकी मॉडल पहले से बने कनेक्शन का उपयोग करें। इसके लिए प्रॉपर्टी link को स्टैटिक बनाते हैं:

/core/Model.php<?php
  namespace Core;
  
  class Model
  {
    private static $link;
    
    public function __construct()
    {
      if (!self::$link) { // यदि प्रॉपर्टी सेट नहीं है, तो कनेक्ट करते हैं
        self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
        mysqli_query(self::$link, "SET NAMES 'utf8'");
      }
    }
    
    protected function findOne($query)
    {
      
    }
    
    protected function findMany($query)
    {
      
    }
  }
?>
Задание 1

दिए गए क्लास Model के कोड को कॉपी करें और इसे /core/Model.php फाइल में रखें।

Задание 2

इस क्लास में मेथड findOne को लागू करें। इसके काम की जाँच करें।

Задание 3

इस क्लास में मेथड findMany को लागू करें। इसके काम की जाँच करें।