- Accept
ReadableCollection
inCollectionToArrayTransformer
- Allow
EntityValueResolver
to return a list of entities - Add support for auto-closing idle connections
- Allow validating every class against
UniqueEntity
constraint - Deprecate auto-mapping of entities in favor of mapped route parameters
- Remove
DoctrineDbalCacheAdapterSchemaSubscriber
, useDoctrineDbalCacheAdapterSchemaListener
instead - Remove
MessengerTransportDoctrineSchemaSubscriber
, useMessengerTransportDoctrineSchemaListener
instead - Remove
RememberMeTokenProviderDoctrineSchemaSubscriber
, useRememberMeTokenProviderDoctrineSchemaListener
instead - Remove
DbalLogger
, use a middleware instead - Remove
DoctrineDataCollector::addLogger()
, use aDebugDataHolder
instead - Remove
ContainerAwareLoader
, use dependency injection in your fixtures instead ContainerAwareEventManager::getListeners()
must be called with an event name- DoctrineBridge now requires
doctrine/event-manager:^2
- Add parameter
$isSameDatabase
toDoctrineTokenProvider::configureSchema()
- [BC BREAK] Add argument
$buildDir
toProxyCacheWarmer::warmUp()
- [BC BREAK] Add return type-hints to
EntityFactory
- Deprecate
DbalLogger
, use a middleware instead - Deprecate not constructing
DoctrineDataCollector
with an instance ofDebugDataHolder
- Deprecate
DoctrineDataCollector::addLogger()
, use aDebugDataHolder
instead - Deprecate
ContainerAwareLoader
, use dependency injection in your fixtures instead - Always pass the
Request
object toEntityValueResolver
's expression - [BC BREAK] Change argument
$lastUsed
ofDoctrineTokenProvider::updateToken()
to acceptDateTimeInterface
- Deprecate passing Doctrine subscribers to
ContainerAwareEventManager
class, use listeners instead - Add
AbstractSchemaListener
,LockStoreSchemaListener
andPdoSessionHandlerSchemaListener
- Deprecate
DoctrineDbalCacheAdapterSchemaSubscriber
in favor ofDoctrineDbalCacheAdapterSchemaListener
- Deprecate
MessengerTransportDoctrineSchemaSubscriber
in favor ofMessengerTransportDoctrineSchemaListener
- Deprecate
RememberMeTokenProviderDoctrineSchemaSubscriber
in favor ofRememberMeTokenProviderDoctrineSchemaListener
- Add optional parameter
$isSameDatabase
toDoctrineTokenProvider::configureSchema()
- Add
#[MapEntity]
with its correspondingEntityValueResolver
- Add
NAME
constant toUlidType
andUuidType
- Remove
DoctrineTestHelper
andTestRepositoryFactory
- Add
DoctrineOpenTransactionLoggerMiddleware
to log when a transaction has been left open - Deprecate
PdoCacheAdapterDoctrineSchemaSubscriber
and addDoctrineDbalCacheAdapterSchemaSubscriber
instead UniqueEntity
constraint retrieves a maximum of two entities if the default repository method is used.- Add support for the newer bundle structure to
AbstractDoctrineExtension::loadMappingInformation()
- Add argument
$bundleDir
toAbstractDoctrineExtension::getMappingDriverBundleConfigDefaults()
- Add argument
$bundleDir
toAbstractDoctrineExtension::getMappingResourceConfigDirectory()
- Deprecate
UserLoaderInterface::loadUserByUsername()
in favor of `UserLoaderInterface::loadUserByIdentifier() - Deprecate
DoctrineTestHelper
andTestRepositoryFactory
- [BC BREAK] Remove
UuidV*Generator
classes - Add
UuidGenerator
- Add support for the new security-core
TokenVerifierInterface
inDoctrineTokenProvider
, fixing parallel requests handling in remember-me
- added support for symfony/uid as
UlidType
andUuidType
as Doctrine types - added
UlidGenerator
,UuidV1Generator
,UuidV4Generator
andUuidV6Generator
- the
getMetadataDriverClass()
method is abstract and must be implemented by class extendingAbstractDoctrineExtension
- passing an
IdReader
to theDoctrineChoiceLoader
when the query cannot be optimized with single id field, throws an exception; passnull
instead - not explicitly passing an instance of
IdReader
toDoctrineChoiceLoader
when it can optimize single id field, will not apply any optimization DoctrineExtractor
now requires anEntityManagerInterface
on instantiation
- [BC BREAK] using null as
$classValidatorRegexp
value inDoctrineLoader::__construct
will not enable auto-mapping for all classes anymore, use'{.*}'
instead. - added
DoctrineClearEntityManagerWorkerSubscriber
- deprecated
RegistryInterface
, useDoctrine\Persistence\ManagerRegistry
- added support for invokable event listeners
- added
getMetadataDriverClass
method to deprecate class parameters in service configuration files
- changed guessing of DECIMAL to set the
input
option ofNumberType
to string - deprecated not passing an
IdReader
to theDoctrineChoiceLoader
when query can be optimized with a single id field - deprecated passing an
IdReader
to theDoctrineChoiceLoader
when entities have a composite id - added two Messenger middleware:
DoctrinePingConnectionMiddleware
andDoctrineCloseConnectionMiddleware
- deprecated injecting
ClassMetadataFactory
inDoctrineExtractor
, an instance ofEntityManagerInterface
should be injected instead - added support for
simple_array
type - the
DoctrineTransactionMiddlewareFactory
class has been removed
- added support for datetime immutable types in form type guesser
- the first constructor argument of the
DoctrineChoiceLoader
class must be anObjectManager
implementation - removed the
MergeDoctrineCollectionListener::onBind()
method - trying to reset a non-lazy manager service using the
ManagerRegistry::resetService()
method throws an exception - removed the
DoctrineParserCache
class
- added support for doctrine/dbal v2.6 types
- added cause of UniqueEntity constraint violation
- deprecated
DbalSessionHandler
andDbalSessionHandlerSchema
in favor ofSymfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler
- added "{{ value }}" message placeholder to UniqueEntityValidator
- deprecated
MergeDoctrineCollectionListener::onBind
in favor ofMergeDoctrineCollectionListener::onSubmit
- deprecated passing
ChoiceListFactoryInterface
as first argument ofDoctrineChoiceLoader
's constructor
- removed
EntityChoiceList
- removed
$manager
(2nd) and$class
(3th) arguments ofORMQueryBuilderLoader
- removed passing a query builder closure to
ORMQueryBuilderLoader
- removed
loader
andproperty
options of theDoctrineType
- deprecated using the entity provider with a Doctrine repository implementing UserProviderInterface
- added UserLoaderInterface for loading users through Doctrine.
- added DoctrineChoiceLoader
- deprecated EntityChoiceList
- deprecated passing a query builder closure to ORMQueryBuilderLoader
- deprecated $manager and $em arguments of ORMQueryBuilderLoader
- added optional arguments $propertyAccessor and $choiceListFactory to DoctrineOrmExtension constructor
- deprecated "loader" and "property" options of DoctrineType
- deprecated DoctrineOrmTestCase class
- added an optional PropertyAccessorInterface parameter to DoctrineType, EntityType and EntityChoiceList
- added a default implementation of the ManagerRegistry
- added a session storage for Doctrine DBAL
- DoctrineOrmTypeGuesser now guesses "collection" for array Doctrine type
- DoctrineType now caches its choice lists in order to improve performance
- DoctrineType now uses ManagerRegistry::getManagerForClass() if the option "em" is not set
- UniqueEntity validation constraint now accepts a "repositoryMethod" option that will be used to check for uniqueness instead of the default "findBy"
- [BC BREAK] the DbalLogger::log() visibility has been changed from public to protected