- 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/collection
v7 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/instantiator
2.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
ReferenceInterface
hydrating. By @roxblnfk (#417) - Add the method
forUpdate
in theSelect
phpdoc. 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\Typecast
is 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
CaseTemplate
by @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
cascade
mode 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
@readonly
forRepository::$select
by @roxblnfk (#369)
- Add supporting for
loophp/collection
by @drupol (#344) - Add supporting for PHP 8.1 Enum in the default typecast handler
Cycle\ORM\Parser\Typecast
by @roxblnfk (#352) - Improve
template
annotations inCycle\ORM\Select\Repository
andCycle\ORM\Select
classes by @roxblnfk (#351) - Classes
Cycle\ORM\Transaction\UnitOfWork
andCycle\ORM\Transaction\Runner
are now not internal by @roxblnfk (#353)
- Remove
$config
property overriding in theRelationConfig
by @msmakouz (#343) - Fix bug on ManyToMany resolving by @roxblnfk (#345)
- Remove
final
from theSelect
class by @msmakouz (#327) - Fix keys comparing in the BelongsTo relation by @msmakouz (#326)
- Add Psalm
@template
annotations 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
ConstrainInterface
andScopeInterface
@roxblnfk (#271)
- Fixed
Node::getChanges()
when a key in$current
argument 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::SCOPE
instead @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-hydrator
replaced 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
load
option (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
load
option
- 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_QUERY
andSelect::OUTER_QUERY
- added support for Zend/Hydrator 3.0
- Transaction object always empty after
run
method + docs
- added ability to easier query nested relations inside
with
->where
conditions - 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