Татбиқи модели барҳамаи ҳамаи моделҳо дар MVC framework-и худ

Биёед синфи барҳамаи ҳамаи моделҳоро татбиқ кунем:

/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-ро татбиқ кунед. Коркарди онро санҷед.