phpsoftbox/orm
Composer 安装命令:
composer require phpsoftbox/orm
包简介
ORM component for the PhpSoftBox framework
README 文档
README
ORM компонент для PhpSoftBox. Работает поверх phpsoftbox/database.
Статус: beta
Рекомендации по работе с ORM
Ниже — практики, которые мы используем в проекте и на которые опирается код:
- Entity — источник правды. Репозитории возвращают сущности (
?Entity,EntityCollection), а не массивы. create()возвращает Entity. Проверкиid <= 0не нужны — ORM кидает исключение, если id не назначен.- Репозиторий без бизнес‑логики. Правила, валидация и ошибки — в сервисах.
- Использовать relations вместо join, когда возможно.
with()/whereHas()предпочтительнее ручного join. - Прямой доступ к
connection()— только там, где ORM не покрывает кейс.
Типовые случаи: bulk‑операции, pivot‑таблицы, служебные массовые апдейты. - Входные данные должны быть нормализованы до репозитория.
RequestSchema/DTO/сервис формируют payload; репозиторий только применяет его к сущности. - Контроллеры возвращают Resource, а не массивы.
Resource::collection()для списков,new Resource($entity)для единичных. - Жизненный цикл — через
EntityManager.
persist/flushна сущности, не смешивать с ручным SQL без крайней нужды. - Транзакции — в сервисах.
Если операция затрагивает несколько репозиториев, управляет сервис.
Оглавление
- Quick Start
- Атрибуты и метаданные
- Репозитории и EntityManager
- TypeCasting
- Behaviors, события и DI
- Relations (связи)
- Pivot Entity
- EntityManagerRegistry и multiple connections
Quick Start
Mongo Changelog Driver
Для хранения ORM changelog в Mongo можно использовать PhpSoftBox\Orm\ChangeLog\Driver\MongoEntityChangeLogger.
Драйвер ожидает mongo-manager с методом collection(string $collection, string $connection): object, а также доступный ext-mongodb.
统计信息
- 总下载量: 122
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-02-06