You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add EntityFactory::create(class-string, ...props) for constructing
entities without calling the constructor (readonly-safe)
- Add EntityFactory::resolveClass(name) replacing createByName
- Add EntityFactory::withChanges(entity, ...changes) for immutable copies
- Add EntityFactory::isReadOnly(entity) for readonly class detection
- Add ReadOnlyViolation exception for initialized readonly property guard
- Remove EntityFactory::createByName, hydrate, and disableConstructor
- Extend persist() to consult identity map for untracked entities,
enabling update-by-replacement for immutable entities
- Add Collection::persist(...$changes) with inline withChanges support
- Change persist() return type from bool to object (returns the entity)
- Replace resolveEntityName with Typed::resolveEntityClass using FQN
- Lift resolveEntityClass into Base hydrator, shared by Flat and Nested
- Cache resolveClass and detectRelationProperties results
- Use SplObjectStorage::offsetUnset instead of deprecated detach
- Normalize terminology: PK/FK -> identity/reference throughout
0 commit comments