FFCMS Wiki

Официальная документация разработчика и администратора

Инструменты пользователя

Инструменты сайта


core:mvc:activerecord

Активные записи (Active Record)

Активные записи (Active Records) это модельное представление взаимодействия с таблицами в базе данных. Активные записи являются частным шаблоном реализации ORM. Каждой таблице в базе данных соответствует активная запись (модель) на уровне приложений FFCMS.

В глобальном представлении паттерна MVC активные записи являются частным реализации моделей. Реализация паттерна активных записей предоставляется пакетом «Eloquent ORM» из фреймворка «Laravel».

Общая архитектура

Все активные записи хранятся в директории /Apps/ActiveRecord/ и должны быть расположены внутри пространства имен Apps\ActiveRecord. Все активные записи должны быть именованы в единственном числе, а соответствующие им таблицы - во множественном. К примеру, активной записи User соответствует таблица users. Кроме того, активные записи должны наследовать базовую реализацию Ffcms\Core\Arch\ActiveModel. Пример активной записи:

// file: /Apps/ActiveRecord/Wallet.php
use Ffcms\Core\Arch\ActiveModel;
 
class Wallet extends ActiveModel
{
    public function getId()
    {
        return $this->id;
    }
}

Для данной активной модели должна быть создана таблица prefix_wallets, к примеру ее содержимое:

| id | int(autoincrement) |
| text | varchar(1024) |

что в дальнейшем позволит использовать активную запись, к примеру:

// select all:
$records = Wallets::all();
// inset:
$records = new Wallets();
$records->text = "Test msg";
$records->save();
// select one row:
$records = Wallets::where('id', '=', 1)->first(); // or $records = Wallets::find(1);
echo $records->getId(); // or $records->id;

Eloquent ORM

Как уже было отмечено ранее, FFCMS использует реализацию Eloquent ORM для поддержки активных записей. Вся документация доступна по следующим ссылкам:

В данной документации доступны полные описания взаимодействия с базой данных по средствам Eloquent ORM - Active Records.

core/mvc/activerecord.txt · Последние изменения: 2015/12/22 11:30 (внешнее изменение)