ata/ata-cycle-orm

Ata Cycle Orm


README

Это попытка соединить паттерн ActiveRecord, laravel и cycle-orm в одно единое нечто.

Установка

composer install ata/ata-cycle-orm

artisan vendor:publish --provider="Ata\Cycle\ORM\PackageServiceProvider"

Разработка

Необходимо добавить в .env переменную HOST_DB_PORT - это необходимо для поднятия тестовой БД.

Для установки пакетов, поднятия контейнера и тд, нужно выполнить команду make init

Настройка в Laravel

При публикации создается файл config/cycle.php с требуемыми настройками.

migrations

В этом разделе конфига находятся настройки, связанные с миграциями cycle orm:

  1. directory - путь, в котором хранятся миграции. Рекомендуется использовать отличную от ларавельских миграций директорию.
  2. table - таблица, в которую будут записываться миграции. Рекомендуется использовать отличную от ларавельских миграций таблицу.
  3. default_migration_name - наименование автоматически созданной миграции (будет рассмотрено в разделе Консольные команды)
  4. timestamp_format - формат, в котором будет записываться текущая дата в названии файла созданной миграции

database

В этом разделе конфига находятся настройки подключения к БД.

  1. default - база данных, используемая по умолчанию
  2. databases - список баз данных, используемых в приложении
  3. connections - список подключений к разным БД.

Настройки подключений

  1. Наименование подключения (ключ) - используется в значении connection при добавлении новой БД в разделе конфига databases
  2. driver - драйвер подключения к БД. Генерирует уникальный SQL для разных БД.
  3. options - опции подключения к БД, такие как
    1. connection - строка подключения (более подробно о формате почитать тут)
    2. username - имя пользователя в БД
    3. password - пароль пользователя в БД

schema

В этом разделе находятся настройки схемы сущностей и их обработка.

  1. generators - генераторы. Порядок генераторов в массиве очень важен! Сущности без primary key не будут обрабатываться!
  2. path - путь до моделей. Путей может быть несколько, по умолчанию модели ищутся в папке app/Models

commands

В этом разделе находится кастомизация логики на создание, удаление и обновление сущностей в БД.

Порядок команд очень важен!

Команды работают по схожему принципу с генераторами (т.е. результат выполнения предыдущей команды записывается в последующую). Они будут рассмотрены подробнее в специальном разделе Команды Маппера.

Тестирование

Команды Маппера

Консольные команды

Базовая модель