Что представляют из себя объекты в php? Пытаюсь сделать простой сайт с иcпользование паттерна ActiveRecord.
В паттерне ActiveRecord и ORM мы создаем класс и свойства, которые соответствуют таблица, получается одна таблица - один класс. Плюс в каждом классе по 4 метода - insert, delete, edit, update.
Когда мы достаем все записи из бд методом FETCH_CLASS мы ля каждой строки создаем объект нужного класса и добавляем этот объект в массив. Получается массив объектов.
Не совсем понимаю что из себя представляют объекты в в этом массиве? Что-то вроде ассоциативного массива, где имена переменных в классе это ключи, а значения переменных, значения этих ключей?
Отличаются от массивов тем, что к ним можно применить определенные методы? например update, найти объекте где id = 1 и присвоить переменным другие значения.
в каком то примере видел, что при методе insert проверяют, есть ли объект, где id уже установлен или вроде того. Зачем id проверять, если в БД у id тип SERIAL и при добавлении новой записи он будет уникален, а в самом sql запросе мы не прописывает id? public function insert() {
// Есть у объекта статьи ID?
if ( !is_null( $this->id ) ) trigger_error ( "Article::insert(): Attempt to insert an Article object that already has its ID property set (to $this->id).", E_USER_ERROR );
// Вставляем статью
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "INSERT INTO articles ( publicationDate, title, summary, content ) VALUES ( FROM_UNIXTIME(:publicationDate), :title, :summary, :content )";
$st = $conn->prepare ( $sql );
$st->bindValue( ":publicationDate", $this->publicationDate, PDO::PARAM_INT );
$st->bindValue( ":title", $this->title, PDO::PARAM_STR );
$st->bindValue( ":summary", $this->summary, PDO::PARAM_STR );
$st->bindValue( ":content", $this->content, PDO::PARAM_STR );
$st->execute();
$this->id = $conn->lastInsertId();
$conn = null;
echo ' news addes';
}P.S. есть ли хорошие материалы, примеры использования ActiveRecord и ORM ?

21 Авг 2019 в 07:03
150 +1
0
Ответы
1

В PHP объекты представляют индивидуальные экземпляры классов, которые содержат свойства (переменные) и методы. Объекты в массиве, созданном при использовании паттерна ActiveRecord, будут представлять записи из базы данных, где каждый объект будет соответствовать одной строке из таблицы.

Объекты в PHP не являются ассоциативными массивами, хотя они могут иметь свойства (переменные), которые могут быть использованы как ключи в ассоциативном массиве. Основное отличие объектов от массивов заключается в том, что к объектам можно применять методы, определенные в классе, что добавляет функциональность и поведение к объектам.

Относительно проверки ID при методе insert, проверка может быть выполнена для обеспечения безопасности и целостности данных. Если ID уже установлен в объекте до вставки в базу данных, это может указывать на возможное нарушение целостности данных или ошибку в коде. Проверка позволяет предотвратить такие ситуации и обеспечить корректную работу при вставке новых записей.

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

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 340 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир