- Fix inserting order in regular cases by @roxblnfk and @gam6itko (#381)
- Add Generated Fields option into ORM Schema by @roxblnfk (#462)
-
Fix compatibility with PHP 8.3 by @msmakouz (#454)
-
v2.6.0 (22.12.2023)
- Add support for
loophp/collectionv7 by @msmakouz (#448) - Fix wrong adding table prefix on joins by @msmakouz (#447)
- Expose JSON methods in the Select query builder by @msmakouz (#445)
- Add NullHeap by @roxblnfk (#441)
- Add support uninitialized collections in entities by @roxblnfk (#431)
- Allow
doctrine/instantiator2.x by @msmakouz (#438) - Improve relations hydration for non-proxy entities. Now it more lazy. By @msmakouz (#429)
- Fix fields uncasting in the ManyToMany relation by @roxblnfk, thanks @gam6itko (#427, #428)
- Fix resolving of a not loaded parent in the relation RefersTo by @roxblnfk, thanks @msmakouz and snafets (#414)
- Fix belongs to relation when parent is changed using parent id by @roxblnfk, thanks @roquie (#346, #432)
- Fix loading for Embedded entities when parent is null by @gam6itko and @roxblnfk (#422, #423)
- Fix: remove extra joins from JTI and eager relations when ManyToMany is resolved. By @msmakouz and @roxblnfk (#418)
- Fix the Unit of Work persistState() method in a sequenced call. By @msmakouz and @roxblnfk (#424, #426)
- Fix ManyToMany lazy loading when value object are used as keys. By @msmakouz and @roxblnfk (#318, #420)
- Fix proxy-mapper hydration mechanism: public relations in a non-proxy-entity are hydrated like private ones.
There is a special logic related to
ReferenceInterfacehydrating. By @roxblnfk (#417) - Add the method
forUpdatein theSelectphpdoc. By @msmakouz (#413)
- Fix typecasting in relations when JTI entities are loaded by @roxblnfk (#408, #409)
- Update
where()andorderBy()behavior in the JTI case. It possible to pass parent field name. By @roxblnfk (#405) Select::wherePK()is now more strict. Use entity field name instead of table columns.- Fix method naming:
AbstractLoader::loadIerarchy()deprecated and renamed to::loadHierarchy(). - Class
\Cycle\ORM\Parser\Typecastis now not internal by @thenotsoft (#395) - Update test case generator script. Now it possible to set case name like "Issue777" and a template folder that
different from the default
CaseTemplateby @gam6itko (#389)
- Fix compatibility with PHP 8.2 (AllowDynamicProperties) by @roxblnfk (#394)
- Add tests with using for microseconds in a datetime fields by @BelaRyc and @msmakouz (#383)
- Fix
EM::persistState()that inserted the same entity twice by @roxblnfk (#368) - Fix bug on saving of replaced pivoted collection by @BelaRyc (#382)
- Fix
cascademode in BelongsTo relation by @roxblnfk and @msmakouz (#347, #374) - Fix storing od embedded entities in a JTI by @butschster (#379)
- Add tests case template by @roxblnfk and @kastahov (#372, #377)
- Add a previous exception in TransactionException on throwing by @Eugentis (#367)
- Add annotation
@readonlyforRepository::$selectby @roxblnfk (#369)
- Add supporting for
loophp/collectionby @drupol (#344) - Add supporting for PHP 8.1 Enum in the default typecast handler
Cycle\ORM\Parser\Typecastby @roxblnfk (#352) - Improve
templateannotations inCycle\ORM\Select\RepositoryandCycle\ORM\Selectclasses by @roxblnfk (#351) - Classes
Cycle\ORM\Transaction\UnitOfWorkandCycle\ORM\Transaction\Runnerare now not internal by @roxblnfk (#353)
- Remove
$configproperty overriding in theRelationConfigby @msmakouz (#343) - Fix bug on ManyToMany resolving by @roxblnfk (#345)
- Remove
finalfrom theSelectclass by @msmakouz (#327) - Fix keys comparing in the BelongsTo relation by @msmakouz (#326)
- Add Psalm
@templateannotations to RepositoryInterface by @roxblnfk
- Fix a Tuple updating in the Pool by @roxblnfk (#319)
- Fix protected relation fields hydration on eager loading @roxblnfk (#314)
- Minimal PHP version is 8.0
- Composited keys
- 'Joined Table Inheritance' and 'Single Table Inheritance'
- Added ProxyMapper (
Cycle\Orm\Mapper\Mapper) - Supporting for arrays/Doctrine/Laravel or custom collections in HasMany adn ManyToMany relations
- Typecasting moved to Mappers
- Added Typecast handlers with Castable/Uncastable interfaces
- Added Entity Manager and Unit Of Work instead of
Cycle\ORM\Transaction - A lot of Interfaces are changed
- Added
ORM::with. OtherORM::with*methods marked as deprecated @msmakouz (#257) - Better compatibility between
ConstrainInterfaceandScopeInterface@roxblnfk (#271)
- Fixed
Node::getChanges()when a key in$currentargument is undefined @msmakouz (#238)
- Update the Node data comparison mechanism @msmakouz (#235)
- Fix Entity data comparison with objects in fields @msmakouz (#234)
- Add ability for relations to independently determine related value changing @hustlahusky (#227)
- Prevent repeating entity hydration in the 'has many' relation
- Added Scope classes and deprecations for Constrain classes @roxblnfk (#209)
- Hotfix: missing type casting to string for primary key @roquie (#204)
- Hotfix: fixed type assertions for mapped criteria keys @dimarkov-git (#187)
- Hotfix: inner keys naming in morphed relations @hustlahusky (#192)
- Refactor: prevent repeating entity hydration in the Many to Many relations @hustlahusky (#188)
- Added deprecation for
SchemaInterface::CONSTRAIN. UseSchemaInterface::SCOPEinstead @roxblnfk (#194)
- Hotfix: PK changes not tracked (#179)
- Better heap sync (#180)
- Fix inserting empty entities by @roxblnfk (#175)
- Added support of Doctrine/Annotations v2 by @roxblnfk
- Bugfix: prevent merge nodes with same roles when initializing pivot entity by @hustlahusky
- Bugfix: RefersTo and BelongTo relations innerKey naming error by @roxblnfk
- Added 'orderBy' option for relations by @roxblnfk
- Fixed ID mapping column is set and differs from the field name by @roxblnfk
- fixed issue with redundant UPDATE when updating entity state in cyclic relations (related to TimestampedMapper)
- fixed issue causing typed (7.4+) entities to fail in cycling many to many relations
- entity re-load refreshes the entity state and relations instead of keeping the original entity
- minor optimizations in many to many relations
- added PHP8 test pipelines
- fixes hydration of typed properties by bumping laminas hydrator to v4 by @roxblnfk
- bugfix: column mapping for embedded entities now excludes custom properties by @thenotsoft
- added PHP8 support
- allows LEFT JOIN for ManyToMany loader
- added the ability to use objects as Heap keys by @thenotsoft
- fixes loss of pivot context on pivoted collection clone
- improved UUID serialization in Heap by @thenotsoft
- [bugfix] fixes cascade POSTLOAD relations in pivoted chains of ManyToMany relation
- [bugfix] fixes typo in eager loading
- [bugfix] incorrect update sequence for nullable numeric values
- [bugfix] causing incorrect command order while updating transitive key for RefersTo relation
- fixed bug causing ORM to disable relation graph pointing to Promises in related entities
- more promise related tests
- adds getTarget to RelationInterface
- fixed compatibility issues with PHPUnit8 (no more warnings)
- [bugfix] MtM relation did not load eager relations when selected via promise #94
- added more MtM tests
- a number of performance optimizations by @pine3ree
- laminas hydrators used directly by @pine3ree
zendframework/zend-hydratorreplaced withlaminas/laminas-hydrator
- do not load embedded object when parent not loaded
- minor performance optimizations
- all collection promises are Selectable
- reverted notNull relation logic by @mishfish
- bumped PHPUnit version to 8
- removed Travis tests
- added GitHub Actions
- suppressed PK introspection on Postgres insert queries
- added the support for custom default sources, repositories and mappers by @mrakolice
- [bugfix] embedded relations data was loaded with parent entity even when not required
- simplified query builder creation within joinable loader
- added support for callable
loadoption (where alternative) for all relations - added support for where in all relations
- code-style changes (optimizations)
- performance optimizations in Node parsers, Select builder, Typecast
- 33% performance improvement (with updated DBAL)
- the limit exception is not thrown on joined singular relations
- Select doc-block improvement (better IDE integration)
- bugfix: invalid target resolution in lazy-loaded many-to-many relations
- Select methods return typehinted as self instead of $this to improve compatibility with PHPStorm
- the minimum PHP version is set as 7.2 as stated in the documentation
- fixed typo THOUGH => THROUGH, old constants marked as deprecated
- added shortcut to specify relation load constrains using
loadoption
- cyclic relations initialization only applied to non-resolved entity references
- bugfix: entity columns and relations are no longer altered if entity fetched from database multiple times #33
- joined filters are always called prior to joined loaders
- ability to reference the column of joined relation in loaded relation where condition while using INLOAD
- added constants for relation fetch methods
Select::SINGLE_QUERYandSelect::OUTER_QUERY
- added support for Zend/Hydrator 3.0
- Transaction object always empty after
runmethod + docs
- added ability to easier query nested relations inside
with->whereconditions - added ability overwrite default loader method when no options are set
- CS: @invisible renamed to @internal
- DatabaseMapper will not generate new PK if value has been set by user
- minor CS (is_null => === null, !empty => === type)
- ORM->get() and Heap->find() can now accept multiple kv pairs (search is still done using first pair) for future composite key support
- first public release with documentation