NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #490 most downloaded on Packagist
Doctrine behavioral extensions
Last release 9 days ago
29 Sep 2026
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 35 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
97 releases · first in 2012
SoftDeleteable: Resolve the event manager listeners from the object manager to support doctrine/persistence >= 4.0 and doctrine/event-manager >= 2.1
doctrine/persistence >= 4.0 anddoctrine/event-manager >= 2.1All: Removed the dollar sign from the generated cache ID for extension metadata to ensure only characters mandated by PSR-6 are used, improving compat
One column per quarter.
Added Support for Symfony 8
SoftDeleteable: $handlePostFlushEvent parameter to SoftDeleteableListener::__construct() to enable or disable handling of the postFlush event
$handlePostFlushEvent parameter to SoftDeleteableListener::__construct() to enable or disable handling of the postFlush event (#2958)postFlush event is disabled by default (#2958)behat/transliterator with symfony/string for default transliteration and urlization steps (#2985)ClassMetadata::getFieldValue() and ClassMetadata::setFieldValue() methods to support doctrine/orm >= 3.4 (#2966)Compatibility with doctrine/mongodb-odm ^2.11
doctrine/mongodb-odm ^2.11 (#2945)SoftDeleteable: Resolved a bug where a soft-deleted object isn't remove from the ObjectManager
Actor provider for use with extensions with user references
Support for doctrine/persistence ^4.0
doctrine/persistence ^4.0doctrine/dbal >= 4.0 that caused MariaDB to improperly attempt LONGTEXT casting in TranslationWalker (issue #2887)Removed invalid @note annotation from AbstractLogEntry::$data , which was causing issues in projects using annotation parsers
@note annotation from AbstractLogEntry::$data, which was causing issues in projects using annotation parsersSupport for doctrine/dbal >= 4.0 with all extensions, except Loggable
doctrine/dbal >= 4.0 with all extensions, except LoggableThrowable from Gedmo\Exception interfacedoctrine/dbal >= 4.0 with all extensions, except LoggableThrowable from Gedmo\Exception interfaceRestructure the SqlWalkerCompat trait to fix optimized autoloading
Support for defining mapping information from annotations has been deprecated and will be removed in 4.0, use PHP attributes mapping instead.
doctrine/orm 3TranslationWalker hint when looking for similar slugs (getSimilarSlugs method) for entities which implement Translatable interface and have uniqueOverTranslations: true Slug option (#100, #2530)MaterializedPath::removeNode().The createLifecycleEventArgsInstance() method on Gedmo\Mapping\Event\AdapterInterface implementations is deprecated, use your own subclass of Doctrine…
Gedmo\SoftDeleteable\Event\PreSoftDeleteEventArgs and
Gedmo\SoftDeleteable\Event\PostSoftDeleteEventArgs classes.psr/clock implementation into event adapters
that create new DateTimeInterface objects (SoftDeleteable and Timestampable)@internal annotation from Gedmo\Mapping\Driver\AttributeReader.Gedmo\SoftDeleteable\Event\PreSoftDeleteEventArgs and
Gedmo\SoftDeleteable\Event\PostSoftDeleteEventArgs classes to preSoftDelete and postSoftDelete events.createLifecycleEventArgsInstance() method on Gedmo\Mapping\Event\AdapterInterface
implementations is deprecated, use your own subclass of Doctrine\Persistence\Event\LifecycleEventArgs as needed.Tree: Added @template and @template-extends annotations to the Tree repositories
@template and @template-extends annotations to the Tree repositoriesGedmo\Mapping\Event\Adapter\ORM::getObjectManager() and getObject() on EventArgs that do not implement getObjectManager() and getObject() (such as old EventArgs implementing getEntityManager() and getEntity())Gedmo\Uploadable\Event\UploadableBaseEventArgs::getEntityManager() and getEntity(). Call getObjectManager() and getObject() instead.References: fixed condition in XML Driver that did not allow to retrieve from the entity definition the mappedBy and inversedBy fields.
XML Driver that did not allow to retrieve from the entity definition the mappedBy and inversedBy fields.Tree: Creation of dynamic Node::$sibling property, which is deprecated as of PHP >= 8.2
setSibling() and getSibling() methods in the Node interface through the BC @method annotation$sortByField and $direction parameters at AbstractTreeRepository::recover()$data array in annotation classes at Gedmo\Mapping\Annotation\
namespaceTranslationProxy::__set() (from TranslationProxy to void)Node::$sibling property, which is deprecated as of PHP >= 8.2TranslationProxy::__set() in order to honor its original signature (void)Node interface in classes that are used as nodesGedmo\Tool\WrapperInterface::getIdentifier() method without the second argument ($flatten) is deprecated and will
be required in version 4.0Loggable: Remove unfixable deprecation when extending LoggableListener
LoggableListener@note annotation…which means that extending these classes is deprecated and can not be inherited in version 4.0.
$options as parameter 2 in getPathQueryBuilder() to specify whether you want the starting node included or notgetPathAsString() method to entity repositoryverify() in case you want to verify a single tree in a forestrecoverFast() method for where speed is more important than safety and entity manager staterecover() for sibling order, tree root in a forest, verification skip and auto-flushingNested::ALLOWED_NODE_POSITIONS constant in order to expose the available node positionsdoctrine/collections 2.0doctrine/event-manager 2.0LogEntryInterface interface in order to be implemented by log entry modelsTranslatableListener::getTranslatableLocale()@final and @internal annotations were added to all non base classes, which means that extending
these classes is deprecated and can not be inherited in version 4.0.Comparable::compareTo() is deprecated in SortableListener::postFlush().
This will not be accepted in version 4.0.Doctrine\Common\Annotations\Reader or Gedmo\Mapping\Driver\AttributeReader instance will be required.Gedmo\DoctrineExtensions::registerAnnotations() is deprecated and will be removed in 4.0, the method has been no-op'd as all
supported doctrine/annotations versions support autoloadingLoggableListener::ACTION_CREATE, LoggableListener::ACTION_UPDATE and LoggableListener::ACTION_REMOVE
are deprecated. Use LogEntryInterface::ACTION_CREATE, LogEntryInterface::ACTION_UPDATE and LogEntryInterface::ACTION_REMOVE
instead.Bump "doctrine/event-manager" dependency from ^1.0 to ^1.2.
Tree: Allow sorting children by a ManyToOne relation
null to abs() functionnull as argument 8 to Nested::shiftRangeRL()Sluggable: Add support for DateTimeImmutable fields
DateTimeImmutable fieldschildrenQueryBuilder() to allow specifying sort order separately for each fieldreorder() methodClosureTreeRepository::removeFromTree() and NestedTreeRepository::removeFromTree() when something fails in the transaction, it uses the code from the original exception to construct the \Gedmo\Exception\RuntimeException instance instead of null.preg_match() (#2473)AbstractMaterializedPath::removeNode() and AbstractMaterializedPath::getChildren()Removed call to deprecated ClassMetadataFactory::getCacheDriver() method.
ClassMetadataFactory::getCacheDriver() method.appendNumber renaming for files without extension (#2228)Translatable: Add defaultTranslationValue option to allow null or string value (#2167). TranslatableListener can hydrate object properties with null v
FileInfoInterface::getSize() return type declaration (#2413).null.References: Avoid deprecations using LazyCollection with PHP 8.1
Translation entity to speed up searches using
Gedmo\Translatable\Entity\Repository\TranslationRepository::findTranslations() method.Gedmo\Mapping\Event\AdapterInterface::getObject() method.AbstractClassMetadataFactory::getCacheDriver() method.doctrine/mongodb-odm >= 2.2Gedmo\Translatable\Document\Repository\TranslationRepository::findObjectByTranslatedField()
method accessing a non-existing key.Gedmo\Tool\Logging\DBAL\QueryAnalizer class without replacement.Gedmo\Mapping\Event\AdapterInterface::__call() method.Gedmo\Tool\Wrapper\AbstractWrapper::clear() method.Gedmo\Tool\Wrapper\WrapperInterface::populate() method.setCacheItemPool()
on the extension listener passing an instance of Psr\Cache\CacheItemPoolInterface.PHP 8 Attributes support for Doctrine MongoDB to document & traits.
fallback attribute of the translatable
element in the XML mapping.activate-locking attribute of the tree
element in the XML mapping.append_id, starts_with_separator and
ends_with_separator attributes of the tree-path element in the XML mapping.Gedmo\SoftDeleteable\Query\TreeWalker\Exec\MultiTableDeleteExecutor::__construct() requires a Doctrine\ORM\Mapping\ClassMetadata instance.Translatable: Using ORM/ODM attribute mapping and translatable annotations.
tree-path-hash fields in XML mapping.ClosureTreeRepository::cleanUpClosure() and Closure::updateNode().Gedmo\Mapping\Driver\Xml::_loadMappingFile() behavior in scenarios where libxml_disable_entity_loader(true) was previously
called.versioned fields at attribute-override in XML mapping.Gedmo\Mapping\Driver\File::$_paths property and Gedmo\Mapping\Driver\File::setPaths() method are deprecated and will be removed in version 4.0, as the…
Gedmo\Mapping\Driver\File::$_paths property and Gedmo\Mapping\Driver\File::setPaths() method are deprecated and will
be removed in version 4.0, as they are not used.--config option to fix-cs Composer script.replaceRelative() and replaceInverseRelative() at Gedmo\Sluggable\Mapping\Event\Adapter\ODM if the
query result does not implement Doctrine\ODM\MongoDB\Iterator\Iterator.Doctrine\ORM\UnitOfWork relies on SPL object IDs instead of hashes, thus we need to adapt our codebase in order to be compatible with this change.
As Doctrine\ODM\MongoDB\UnitOfWork from doctrine/mongodb-odm still uses spl_object_hash(), all spl_object_hash() calls were replaced by spl_object_id() to make it work with both ORM and ODM managers.PHP 8 Attributes for Doctrine ORM to entities & traits
Doctrine\DBAL\Types\Type at Gedmo\Translatable\Mapping\Event\Adapter\ORM::foreignKey() (#2250)Allow installing doctrine/cache 2.0 (thanks @alcaeus!)
Use path_separator when removing children
Add hacky measure to resolve incompatibility with DoctrineBundle 2.3 #2211
Add PHP 8 compatibility to composer.json, resolving minor function parameter deprecations #2194
composer.json, resolving minor function parameter deprecations #2194- Ignore; tag & version mismatch
- Ignore; wrong branch published
Requires the ext-mongodb PHP extension. Usage of ext-mongo is deprecated and will be removed in the next major version.
/lib/Gedmo to /srcdoctrine/common 3.0 and doctrine/persistence 2.0\Zend_date date format #2163Zend Framework to Laminas #2163Changes below marked ⚠️ may also be breaking, if you have extended DoctrineExtensions.
ext-mongodb PHP extension. Usage of ext-mongo is deprecated and will be removed in the next major version.\MongoDate replaced with MongoDB\BSON\UTCDateTimenull parameter from Doctrine\Common\Cache\Cache::save() calls (#1996)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →