phpsoftbox / orm
ORM component for the PhpSoftBox framework
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/phpsoftbox/orm
Requires
- php: ^8.4
- phpsoftbox/collection: dev-master
- phpsoftbox/database: dev-master
- phpsoftbox/encryptor: dev-master
- phpsoftbox/inflector: dev-master
- ramsey/uuid: ^4.7
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.93
- phpsoftbox/cli-app: dev-master
- phpsoftbox/cs-fixer: ^1.0.1
- phpunit/phpunit: ^11.2
This package is auto-updated.
Last update: 2026-02-06 10:49:05 UTC
README
ORM компонент для PhpSoftBox. Работает поверх phpsoftbox/database.
Статус: beta
Roadmap / планы на будущее
Ниже — список задач, которые мы осознанно оставили на следующие итерации (в порядке примерного приоритета):
-
Inflector contracts
- Сейчас ORM подтягивает пакет
phpsoftbox/inflectorкак реальную зависимость. - В будущем нужно вынести интерфейсы в отдельный пакет (например
phpsoftbox/inflector-contracts), чтобы можно было подключать любой инфлектор без установки всегоphpsoftbox/inflector.
- Сейчас ORM подтягивает пакет
-
BelongsToMany: единый pivotTable для обеих сторон (pivotOwner)
- Сейчас defaults зависят от стороны:
User->roles->user_roles, аRole->users->role_users. - Хотим добавить параметр
pivotOwner: SomeEntity::class, чтобы обратная сторона могла ссылаться на тот же pivotTable без ручного дублирования строк.
- Сейчас defaults зависят от стороны:
-
Pivot данные + isolation при IdentityMap
- Pivot entity сейчас крепится прямо к target entity (
$role->pivot()), и при шаринге entity между разными owner в рамках одного UnitOfWork pivot может перетираться. - Возможные улучшения:
- хранить pivot в контексте relation-коллекции,
- или возвращать wrapper (
RoleWithPivot).
- Pivot entity сейчас крепится прямо к target entity (
-
Дополнительные relation helpers
- Расширить pivot helpers для кейсов:
- обновление pivotData по map (
syncWithPivotDataуже есть), - точечный
updatePivot($relatedId, $pivotData), - batch attach/detach.
- обновление pivotData по map (
- Расширить pivot helpers для кейсов:
-
Новые типы связей / sugar-API
- Возможные расширения (по мере необходимости проекта):
- дополнительные варианты eager loading,
- sugar-методы для common patterns.
- Возможные расширения (по мере необходимости проекта):
Оглавление
- Quick Start
- Атрибуты и метаданные
- Репозитории и EntityManager
- TypeCasting
- Behaviors, события и DI
- Relations (связи)
- Pivot Entity