Как создать свой ORM на PHP мспользуя mysqli?

Создание собственного ORM (Object-Relational Mapping) на PHP с использованием расширения mysqli весьма интересная и полезная задача. ORM позволяет абстрагировать работу с базой данных и предоставляет удобные средства для работы с данными в объектно-ориентированной среде.

Вот примерный алгоритм, который можно использовать для создания своего ORM на PHP с использованием mysqli:

Шаг 1: Создать класс для подключения к базе данных
Начните с создания класса, который будет предоставлять методы для подключения к базе данных. Вы можете назвать его, например, Database. В этом классе вы создадите конструктор, который будет устанавливать соединение с базой данных, и закрывающий метод для закрытия соединения.

class Database {
   private $host;
   private $username;
   private $password;
   private $database;
   private $connection;
   
   public function __construct($host, $username, $password, $database) {
      $this->host = $host;
      $this->username = $username;
      $this->password = $password;
      $this->database = $database;
      
      $this->connection = new mysqli($host, $username, $password, $database);
      
      if ($this->connection->connect_error) {
         die("Connection failed: " . $this->connection->connect_error);
      }
   }
   
   public function closeConnection() {
      $this->connection->close();
   }
}

Вы можете вызвать этот класс следующим образом:

$database = new Database('localhost', 'username', 'password', 'database_name');

Шаг 2: Создать классы сущностей базы данных
Следующим шагом создайте классы сущностей базы данных. Каждый класс будет представлять таблицу базы данных и содержать свойства, соответствующие столбцам таблицы. Для каждого класса вы также должны предоставить методы для выполнения различных операций (вставка, обновление, удаление, выборка) над этими сущностями.

class User {
   private $id;
   private $name;
   private $email;
   
   public function __construct($id, $name, $email) {
      $this->id = $id;
      $this->name = $name;
      $this->email = $email;
   }
   
   // Методы для выполнения операций (вставка, обновление, удаление, выборка) с пользователем
}

Шаг 3: Создать методы для работы с базой данных
Теперь добавьте методы в класс Database, которые будут выполнять запросы к базе данных и возвращать результаты. Например, метод getAll должен извлекать все строки из таблицы и возвращать результат в виде массива объектов.

class Database {
   // ...
   
   public function getAll($table) {
      $sql = "SELECT * FROM " . $table;
      $result = $this->connection->query($sql);
      
      $data = [];
      
      if ($result->num_rows > 0) {
         while($row = $result->fetch_assoc()) {
            // Создаем объекты класса User и добавляем их в массив
         }
      }
      
      return $data;
   }
   
   // ...
}

Вы можете вызвать этот метод следующим образом:

$users = $database->getAll('users');

Шаг 4: Тестирование и доработка
В этом этапе вы должны протестировать свою реализацию ORM, чтобы убедиться, что она работает правильно, и внести необходимые коррективы, если это требуется.

Надеюсь, что данный ответ поможет вам создать собственный ORM на PHP с использованием mysqli. Однако, стоит отметить, что этот пример является только базовым введение в ORM, и реальная реализация может потребовать дополнительной работы и учета специфики вашего проекта.