@bitande
PHP

Что представляют из себя объекты в 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 ?
  • Вопрос задан
  • 229 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы