Releases: doctrine/orm
2.7.2
2.7.2
- Total issues resolved: 4
- Total pull requests resolved: 5
- Total contributors: 8
Documentation
Bug
- 8031: Undefined alias for Embeddable in 2.7.1 thanks to @vicdelfant
- 8030: Problem with Proxies on PHP 7.4.2 with typed properties thanks to @bizley
- 8023: Put into cache using root entity name thanks to @peterkeatingie
- 7969: Child entity not retrieved from array cache thanks to @peterkeatingie
- 8055: Fix regression in 2.7.1 when
mysqli
is used with discriminator column that is not a string thanks to @mpdude - 8050: [GH-7633] disallow cache partial objects thanks to @beberlei
- 8036: Fix inherited embeddables and nesting after AnnotationDriver change #8006 thanks to @malarzm
- 7633: Partial objects get cached and break "actual" objects thanks to @Amunak
2.7.1
A notable change of this version is the introduction of ocramius/package-versions
to provide version information, most importantly when using the Doctrine CLI. That also means that you cannot rely on Doctrine\ORM\Version::VERSION
constant anymore going forward it will always point to 2.7.1-DEV.
When you update, also make sure to include an update to doctrine/persistence
version 1.3.6 and doctrine/reflection
1.1
2.7.1
- Total issues resolved: 4
- Total pull requests resolved: 11
- Total contributors: 11
Bug
- 8006: Make Embeddable not transient thanks to @malarzm
- 7987: [GH-7982] no sql executor leads to parse error thanks to @beberlei
- 7983: Null offset access in DQL parser thanks to @ntzm
- 7974: [GH-7505] Bug in SimpleObjectHydrator when using inheritance with same field thanks to @beberlei and @m-r-r
- 7940: [GH-7864] Bugfix in PersistentCollection::removeElement for EXTRA_LAZY. thanks to @beberlei
- 7934: Fix Trying to access array offset on value of type null thanks to @BenMorel
- 7957: Fix version information thanks to @lcobucci
Documentation
- 7973: Just a micro grammar update. thanks to @DocFX
- 7619: Update improving-performance.rst to reflect current state of PHP ecosystem thanks to @Majkl578
- 7500: Prefer PhpFileCache for caching docs thanks to @shadowhand
CI,Deprecation
Bug,Regression
BC Break,Bug
v2.7.0
This release solves Symfony 5.0 compatibility issues, some small improvements, and adds various deprecation notices.
Please read carefully the upgrade to 2.7 notes to know more about the reasons and how to fix the deprecation messages.
- Total issues resolved: 1
- Total pull requests resolved: 15
- Total contributors: 10
Deprecation
- 7911: Be explicit about which Doctrine package in message thanks to @lcobucci
- 7909: Add deprecation messages thanks to @lcobucci
- 7901: Add deprecation warnings for 2.7.x thanks to @lcobucci
- 7701: Split and deprecate AbstractQuery#useResultCache() thanks to @someniatko
CI
- 7904: Make sure composer files are valid thanks to @greg0ire
- 7600: [2.7] CI: Test against PHP 7.4snapshot instead of nightly (8.0) thanks to @Majkl578
Improvement
- 7876: Fix compat of commands with Symfony 5 thanks to @nicolas-grekas
- 7829: Skip Paginator LIMIT subquery and WHERE IN if query do not have LIMIT thanks to @Seb33300
- 7723: Allow Symfony 5.0 thanks to @nicolas-grekas
- 7710: Prettified arrays in tool command orm:mapping:describe thanks to @rtek
- 7340: Fix config template for PHPUnit >= 7.2 thanks to @guilliamxavier
BC Break,Improvement
Documentation
- 7382: Update homepage thanks to @Majkl578
Bug
- 7326: Cherry-pick #7307 to fix remaining usages of deprecated ClassLoader and Inflector from doctrine/common thanks to @nicolas-grekas
- 7079: Fix getJoinTableName for sqlite with schema attribute thanks to @mairo744
BC Break,Deprecation,Improvement
v2.6.6
This release solves the violation of our BC guarantees, we apologise for impacting existing software.
- Total issues resolved: 0
- Total pull requests resolved: 1
- Total contributors: 1
BC Break,Bug
v2.6.5
This release fixes some important bugs (including a few regressions related to the paginator component and cleaning collections when using DEFERRED_EXPLICIT
).
It also marks the EOL for the v2.6.x series since we'll soon be releasing v2.7.0.
- Total issues resolved: 9
- Total pull requests resolved: 23
- Total contributors: 24
Bug,Regression
- 7905: [Paginator] Fix type conversion during hydration of pagination limit subquery thanks to @akorz, @lcobucci, and @ostrolucky
- 7862: Using
ArrayCollection->clear
over an entity marked to be persisted, doesn't create correspondingDELETE
statements thanks to @ferrastas and @ostrolucky - 7861: Delete statements will not be created using
clear
thanks to @ferrastas
Bug
- 7869: UnitOfWork::clear() misses $eagerLoadingEntities thanks to @BenMorel
- 7865: #7837 paginate with custom identifier types even with enabled DQL query cache thanks to @Ocramius
- 7856: Fix underscore naming strategy behaviour with numbers thanks to @lcobucci
- 7855: Numbers in a string using underscore naming strategy thanks to @vuras
- 7850: Don't merge PersistentCollection orderBy with criteria in matching() thanks to @nlx-lars
- 7842: #7841 SchemaTool generates extra diff for platforms without FK support thanks to @vpArth
- 7764: #7763 escape quotes in field comments thanks to @guillaume-a
- 7763: "doctrine:mapping:import" does not escape quotes in field comments thanks to @guillaume-a
- 7684: only replace '_id' at end of columnName thanks to @rharink
CI
- 7889: Use quoted collation declaration when available, fixes test suite when running against DBAL 2.10+ thanks to @ajgarlag
Documentation
- 7884: [Documentation] Advanced field value... - missing entity alias thanks to @rogeriolino
- 7880: Update documentation to recommend DQL over QueryBuilder when possible thanks to @kuraobi and @javiereguiluz
- 7871: AbstractQuery::getSingleScalarResult() throws exception when no result thanks to @BenMorel
- 7858: Invalid version in Doctrine\ORM\Version::VERSION thanks to @guillaumesmo
- 7849: Mention SQL logger impact on batch processing thanks to @axi
- 7838: Fix the name of ClassMetadata in documentation thanks to @samnela
- 7768: Fix EntityManagerHelper's documentation (it can't accept an array of paths) thanks to @mickaelandrieu
- 7727: [doc] Finish incomplete definition of class UTCDateTimeType thanks to @madand
- 7671: Added missing "the" thanks to @jschaedl
- 7667: Fixes example One-To-One, Self-referencing thanks to @jschaedl
- 7443: Added doc about exception in Query#getOneOrNullResult() thanks to @Naitsirch and @Mynyx
- 7298: Add a missing type in Query::getFirstResult PHPDoc thanks to @dunglas
Improvement
v2.6.4
This release fixes many bugs (including a performance regression) and makes the v2.x series compatible with PHP 7.4.
- Total issues resolved: 11
- Total pull requests resolved: 32
- Total contributors: 30
Improvement
- 7785: Fix "access array offset on value of type null" PHP 7.4 notices thanks to @mlocati
- 7142: Rename this repository to doctrine/orm thanks to @greg0ire
Bug
- 7821: Bug: #7820 paginator ignores dbal type conversions in identifiers thanks to @Ocramius
- 7778: Guard L2C regions against corrupted data thanks to @umpirsky
- 7767: PersistentCollection::matching() does not respect the collections native sorting thanks to @stephanschuler
- 7766: Respect collection orderBy meta when matching() thanks to @stephanschuler
- 7761: Do not modify UOW on PersistentCollection::clear() when owner has DEFFERED_EXPLICIT change tracking policy thanks to @paxal
- 7750: Fix incorrect return of null values in L2C thanks to @AlexSmerw
- 7737: Fix MEMBER_OF comparison when using criteria in query builder thanks to @Smartel1
- 7735: Null in fields value in Cached Entity several times on day on high-load project. thanks to @AlexSmerw
- 7630: Fix #7629 -
scheduledForSynchronization
leaks memory when using@ORM\ChangeTrackingPolicy("DEFERRED_EXPLICIT")
thanks to @yethee - 7528: Prevent
UnitOfWork
lookup for DBAL types specified inDoctrine\ORM\Query#setParameter()
thanks to @Ocramius - 7322: JoinedSubclassPersister pass identifier types on delete thanks to @dennisenderink and @fred-jan
- 7266: Call to a member function resolveAssociationEntries() on boolean {"detail":"[object] (Symfony\Component\Debug\Exception\FatalThrowableError(code: 0): Call to a member function resolveAssociationEntries() on boolean at /www/vendor/doctrine/orm/lib/Doctrine/ORM/Cache/DefaultQueryCache.php:140)"} thanks to @mingmingxianseng
- 4632: DDC-3789: Paginator does not convert entity ids if they are value objects thanks to @doctrinebot
Documentation
- 7818: Add note into docs about not using SimpleAnnotationReader thanks to @SenseException
- 7791: Fix preFlush event documentation stating incorrectly that flush can be called safely thanks to @Steveb-p
- 7753: Add ORM annotations in getting-started docs thanks to @SenseException and @wajdijurry
- 7744: Fixed a typo-error thanks to @noobshow
- 7732: [Documentation] Missing comma fix thanks to @lchrusciel
- 7729: Update DATE_ADD and DATE_SUB docs thanks to @JoppeDC
- 7672: Added cross-links to relevant documentation thanks to @jschaedl
- 7612: Update ordered-associations.rst thanks to @spirlici
- 7610: Change APC to OPcache in improving-performance.rst thanks to @smtchahal
- 7596: Correct method names and broken link in docs thanks to @mbessolov
- 7577: Fix of single link to dbal docs in advanced-configuration.rst thanks to @SenseException
- 7572: Remove codeigniter Framework example thanks to @SenseException
- 7571: Fix typo in inheritance mappings docs thanks to @batwolf
- 7557: Change Stackoverflow tag to doctrine-orm thanks to @malarzm
- 7551: [2.6] Migrate repository name doctrine/doctrine2 -> doctrine/orm thanks to @Majkl578
- 7530: Documentation error typo fix: s/Used-defined/User-Defined thanks to @vladyslavstartsev
- 7519: #7518 Fixed type mismatch between
EntityRepository#__construct()
and its documented constructor arguments thanks to @koftikes - 7518:
EntityRepository::__construct()
expectsDoctrine\ORM\EntityManager
instead of actual requiredEntityManagerInterface
thanks to @koftikes - 7490: Fix broken link thanks to @vladyslavstartsev
- 7483: Fixed a minor syntax issue thanks to @javiereguiluz
CI
v2.6.3
This release provides fixes for many things, specially:
- Regression in commit order calculation
- BC-break in
EntityManager#find()
using optimistic lock outside of
transaction - PHP 7.3 compatibility issues
- Total issues resolved: 8
- Total pull requests resolved: 26
- Total contributors: 26
Documentation
- 7472: fix incorrect phpdoc typehint thanks to @seferov
- 7465: Fixes tiny typo in the 'Working with DateTime instances' documentation thanks to @unguul
- 7444: Fixed URLs of doctrine-mapping.xsd in docs thanks to @Naitsirch
- 7441: $hydrationMode throughout can be a string as well as int (for custom modes) thanks to @asgrim
- 7435: Fix a typo on Documentation thanks to @oguzdumanoglu
- 7434: Removed FAQ paragraph stating public variables are disallowed thanks to @Naitsirch and @flaushi
- 7423: Update association-mapping.rst thanks to @ThomasLandauer
- 7421: JIRA to Github issues on Limitations and Known Issues thanks to @seferov
- 7412: Some formatting improvements thanks to @ThomasLandauer
- 7411: Autoload error when following the Getting Started Guide thanks to @ThomasLandauer
- 7401: [docs] Fix docblock in
inheritance-mapping.rst
thanks to @bobdenotter - 7397: Update getting-started.rst thanks to @eibt
- 7394: Class 'Doctrine\Common\Persistence\Mapping\Driver\AnnotationDriver' not found thanks to @ekosynth
- 7378: Typo fix thanks to @BenMorel
- 7377: Fix query andX doctype thanks to @sserbin
- 7374: Deprecation message in documentation for YAML thanks to @SenseException and @iltar
- 7360: Document getPartialReference() properly thanks to @lcobucci
Bug
- 7471: Fix parameter value processing for objects with unloaded metadata thanks to @alcaeus
- 7367: Fix for BC break in 2.6.2 when calling EM::find() with LockMode::OPTIMISTIC outside of a TX thanks to @timdev
- 7328: Handle removed parameters by tree walker in Paginator thanks to @plfort
- 7325: Make code php 7.3 lint-compatible thanks to @paxal
- 7317: [XML] Fix default value of many-to-many order-by to ASC thanks to @alexdenvir
- 7260: Fix the handling of circular references in the commit order calculator thanks to @stof
- 6830: fix applying column options on foreign key columns thanks to @Tobion
Improvement
- 7428: CI: Test against PHP 7.3 thanks to @Majkl578
- 7363: Fix compatibility with phan thanks to @philippe-unitiz
- 7345: Correct DOMDocument constructor in test thanks to @guilliamxavier
- 7307: Fix remaining usages of deprecated ClassLoader and Inflector from doctrine/common thanks to @Majkl578 and @simonwelsh
v2.6.2
2.6.2
This release provides fixes for:
- a regression in parsing of DQL with aggregate functions as arguments in other functions,
- pessimistic locking without running transaction,
- using non-deprecated Lexer and Inflector.
- Total issues resolved: 3
- Total pull requests resolved: 7
- Total contributors: 5
Bug
- 7296: Fix #7286: StringPrimary no longer accepts aggregate functions as argument thanks to @Majkl578 and @NothingWeAre
- 7291: [2.6] Fix for #7068: EntityManager::find() with pessimistic lock should check for transaction thanks to @Majkl578 and @madwizard-thomas
- 7274: Use non-deprecated version of Lexer and Inflector thanks to @Majkl578
- 7190: Fix wrong type in phpdoc of
Doctrine\ORM\Id\AbstractIdGenerator#generate()
thanks to @Tobion - 7146: [XML] Fix default value of one-to-many order-by to ASC thanks to @Awkan
Improvement
Documentation
v2.6.1
This release provides fixes for:
- a regression in parsing of
DELETE
DQL queries without a DQL alias - a regression in hydration of fields of intermediate classes multi-level single-/multi-table-inheritance
- a call to an undefined
Doctrine\Common\Cache\MemcachedCache::setMemcache()
method in the setup tooling - persistence order for entities with identity through associated entity
- some persistence issues with join columns with special characters in them, which need to be quoted
- incorrect SQL parameter type binding in the basic entity persister
- versioned entity version fields caching within the second level cache
Total issues resolved: 23
- 6043: Identity through foreign Entities - persist thanks to @Gorjunov
- 6531: Cannot persist parent entity if OneToOne shares the same id thanks to @davidbarratt
- 6701: Fix identity through foreign entities thanks to @vhenzl
- 6939: Error for delete query without alias since 2.6.0 thanks to @dmaicher
- 6971: Exception Call to undefined method Doctrine\Common\Cache\MemcachedCache::setMemcache() thanks to @rolando-caldas
- 6988: Inheritance middle-layer doesn't get hydrated thanks to @kbond
- 6997: ManyToManyPersister fails to remove join table entry if there is multiple join columns thanks to @NicolaF
- 7002: Flush new entity with relation when use relation in composite key throws ORMInvalidArgumentException thanks to @samplestudio
- 7003: Cannot persist new entity if primary key contains a foreign key and the referenced object is in state new and its id is not assigned thanks to @NicolaF
- 7012: Fixed updating of entity with quoted identifier join column thanks to @janlanger
- 7021: Fix incorrect variable reference thanks to @lcobucci
- 7031: Tests failing in February (QueryDqlFunctionTest::testDateAdd with "month" dataset) thanks to @Majkl578
- 7032: QueryDqlFunctionTest: Increase delta for testDateAdd() to work in February thanks to @Majkl578
- 7051: Bugfix: Hydrate subclasses of subclasses thanks to @technetium
- 7053: Fixed parser rejecting valid DQL thanks to @carnage
- 7055: Fix date issues once and for all thanks to @lcobucci
- 7059: Querying abstract class in the middle of a hierarchy returns NULL instead of objects thanks to @BenMorel
- 7062: BasicEntityPersister confuses association types with PDO datatypes thanks to @mariusklocke
- 7067: ORM second level cache and version (locking) thanks to @wtorsi
- 7069: Test for Second level cache with Version, DDC #7067 thanks to @wtorsi
- 7077: Fix BC-break on delete without alias DQL thanks to @lcobucci
- 7082: Add failing test for issue #7062 - BasicEntityPersister confuses association types with PDO datatypes thanks to @mariusklocke
- 7093: Fix updating entities with quoted identifier association thanks to @lcobucci
v2.6.0
This release contains almost 3 years of active development and it provides several improvements and fixes, including:
- Better commit order calculation
- More stable second level cache
- Strict testing and quality control
- PHP 7.1+ requirement
Stability
As of today, Doctrine ORM v2.6.x
is our stable distribution, and will receive regular bugfix releases.
The ORM team will now be able to focus completely on the v3.0
, which has no release schedule, therefore
we should not expect new features landing on v2.7.0
but only deprecation notices.
Doctrine ORM v2.5.14
will be the last bugfix release for the v2.5.x
series. Further releases will only
occur in the eventuality of a security issue being discovered.
Changes since 2.5.0
Total issues resolved: 444
Minor BC-Break
- 6216: Remove unused "$className" argument thanks to @malukenho
- 6325: Improve exception message for DQL single-valued association path expression to an inverse side (unsupported) thanks to @Isinlor
- 6500: Allow internal functions to be overridden. thanks to @ThePixelDeveloper
- 6556: Update ConsoleRunner's command list to include L2 cache and DBAL reserved keywords commands thanks to @lcobucci
- 6905: Setup: Switch Apc -> Apcu and Memcache -> Memcached thanks to @Majkl578
New Feature
- 1308: [DDC-3579] Allow override of inversedBy thanks to @z38
- 1343: Support embeddables in partial object query expression [DDC-3621] thanks to @krixon
- 1514: check if collection is empty without loading it thanks to @Metabor
- 4401: DDC-3580: [GH-1308] [DDC-3579] Allow override of inversedBy thanks to @doctrinebot
- 4475: DDC-3647: [GH-1354] [RFC] Added support for OneToMany with orphanRemoval. thanks to @doctrinebot
- 5934: Allow override of fetch for associations thanks to @patrick-mcdougle
- 5938: #5934 - add
fetch
option toAssociationOverride
in order to override fetch strategy for subclasses of entities thanks to @Ma27 - 6003: Expose
EntityPersister::count()
throughEntityRepository::count()
thanks to @phansys - 6397: This should fix Criteria startsWith and endsWith thanks to @svycka
Improvement
- 1228: Fixed many small phpcs issues thanks to @acrobat
- 1303: make QueryBuilder::getAllAliases public thanks to @mrkrstphr
- 1310: Allow symfony 3.0 components thanks to @nicolas-grekas
- 1344: Fix tests for SLC console commands failing due to console output decoration thanks to @billschaller
- 1357: Drop useless execution bit thanks to @DavidPrevot
- 1370: drop doctrine/common git submodule thanks to @TomasVotruba
- 1382: Patch second level cache association hydration thanks to @holtkamp
- 1384: Fix coding standard of
IdentityGenerator#generate()
thanks to @TomasVotruba - 1397: Add Expr::concat support for multiple arguments thanks to @giosh94mhz
- 1400: mysqli is supported by HHVM thanks to @photodude
- 1401: Remove HHVM-nightly builds thanks to @stof
- 1405: EntityManager#getReference throw ORMException for unrecognized id thanks to @taueres
- 1407: Add return to removeMethodTemplate thanks to @aivus
- 1433: Check for non-cacheable entities on metadata level, not at runtime thanks to @goetas
- 1451: composer: autoload via PSR-4 thanks to @TomasVotruba
- 1452: composer: dev is now by default thanks to @TomasVotruba
- 1457: Updated syntax for "integer" and "boolean" types thanks to @phansys
- 1466: Travis: Switch to container-based infrastructure thanks to @Majkl578
- 1470: [CI] Added dev requirement for "doctrine/coding-standard" thanks to @phansys
- 1472: Add test for MariaDB 5.5 and 10.1 on Travis thanks to @PowerKiKi
- 1474: Fix: Remove unused imports thanks to @localheinz
- 1482: Add type hint for entity manager thanks to @bocharsky-bw
- 1518: Added custom ID generator definition to the FieldBuilder thanks to @guiwoda
- 1545: Generic overall fixes thanks to @guilhermeblanco
- 1561: [DDC-4006] Inherit ID generator strategy mapping from embeddables thanks to @deeky666
- 1563: Fixing method name 'rollBack', which was documented as 'rollback' thanks to @rawkode
- 1570: [RFC] Tests around reported cases over DDC-2524 thanks to @guilhermeblanco
- 1574: deduplication of internal UnitOfWork methods thanks to @Ma27
- 1575: Add message to NonUniqueResultException thanks to @Alfredao
- 1579: Reduce code duplication in ProxyFactory::createInitializer thanks to @aschempp
- 4267: DDC-3458: [GH-1228] Fixed many small phpcs issues thanks to @doctrinebot
- 4405: DDC-3584: [GH-1310] Allow symfony 3.0 components thanks to @doctrinebot
- 4484: DDC-3655: [GH-1362] Readme: badges for 2.5 added; 2.3- dropped thanks to @doctrinebot
- 4494: DDC-3664: [GH-1369] Drop empty file thanks to @doctrinebot
- 4495: DDC-3665: [GH-1370] drop doctrine/common git submodule thanks to @doctrinebot
- 4499: DDC-3669: [GH-1373] Add note about "symfony/yaml" dependency for yml mappings thanks to @doctrinebot
- 4527: DDC-3694: [GH-1384] Fix coding standard of
IdentityGenerator#generate()
thanks to @doctrinebot - 4553: DDC-3717: [GH-1397] Add Expr::concat support for multiple arguments thanks to @doctrinebot
- 4562: DDC-3725: [GH-1400] pgsql and mysqli are supported by HHVM thanks to @doctrinebot
- 4563: DDC-3726: [GH-1401] Remove HHVM-nightly builds thanks to @doctrinebot
- 4569: DDC-3731: [GH-1405] EntityManager#getReference throw ORMException for unrecognized id thanks to @doctrinebot
- 4572: DDC-3734: [GH-1407] Add return to removeMethodTemplate thanks to @doctrinebot
- 4626: DDC-3783: [GH-1433] Check for non-cacheable entities on metadata level, not at runtime thanks to @doctrinebot
- 4658: DDC-3811: [GH-1451] composer: autoload via PSR-4 thanks to @doctrinebot
- 4659: DDC-3812: [GH-1452] composer: dev is now by default thanks to @doctrinebot
- 4672: DDC-3824: [GH-1457] Updated syntax for "integer" and "boolean" types thanks to @doctrinebot
- 4684: DDC-3835: [GH-1466] Travis: Switch to container-based infrastructure thanks to @doctrinebot
- 4691: DDC-3841: [GH-1470] [CI] Added dev requirement for "doctrine/coding-standard" thanks to @doctrinebot
- 4697: DDC-3847: [GH-1474] Fix: Remove unused imports thanks to @doctrinebot
- [4741: DDC-3887: [GH-1499] minor: removed useless line breaks](https://github.com/doctrine/doctrine2/issues...