Ata Cycle Orm
Это попытка соединить паттерн ActiveRecord, laravel и cycle-orm в одно единое нечто.
composer install ata/ata-cycle-orm
artisan vendor:publish --provider="Ata\Cycle\ORM\PackageServiceProvider"
Необходимо добавить в .env
переменную HOST_DB_PORT
- это необходимо для поднятия тестовой БД.
Для установки пакетов, поднятия контейнера и тд, нужно выполнить команду make init
При публикации создается файл config/cycle.php
с требуемыми настройками.
В этом разделе конфига находятся настройки, связанные с миграциями cycle orm:
directory
- путь, в котором хранятся миграции. Рекомендуется использовать отличную от ларавельских миграций директорию.table
- таблица, в которую будут записываться миграции. Рекомендуется использовать отличную от ларавельских миграций таблицу.default_migration_name
- наименование автоматически созданной миграции (будет рассмотрено в разделе Консольные команды)timestamp_format
- формат, в котором будет записываться текущая дата в названии файла созданной миграцииВ этом разделе конфига находятся настройки подключения к БД.
default
- база данных, используемая по умолчаниюdatabases
- список баз данных, используемых в приложенииconnections
- список подключений к разным БД.connection
при добавлении новой БД в разделе конфига databases
driver
- драйвер подключения к БД. Генерирует уникальный SQL для разных БД.options
- опции подключения к БД, такие как
connection
- строка подключения (более подробно о формате почитать тут)username
- имя пользователя в БДpassword
- пароль пользователя в БДВ этом разделе находятся настройки схемы сущностей и их обработка.
generators
- генераторы. Порядок генераторов в массиве очень важен! Сущности без primary key
не будут обрабатываться!path
- путь до моделей. Путей может быть несколько, по умолчанию модели ищутся в папке app/Models
В этом разделе находится кастомизация логики на создание, удаление и обновление сущностей в БД.
Порядок команд очень важен!
Команды работают по схожему принципу с генераторами (т.е. результат выполнения предыдущей команды записывается в последующую). Они будут рассмотрены подробнее в специальном разделе Команды Маппера.
В этом разделе конфига находится наименование событий на создание\обновление\удаление сущности.