NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #5048 most downloaded on Packagist
Jackalope Transport library for Doctrine DBAL
Last release 10 months ago
29 Nov 2025
Release timing varies
gaps range from 2 weeks to 13 months
Most releases are documented
notes for 37 of 51 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
66 releases · first in 2013
Allow installation with Symfony 8.
Fixed cache key sanitize for UUID map of referenceable nodes.
One column per quarter.
Fixed cache key sanitize for PSR-16 cache.
Added static typing wherever possible. This should not change anything, but the added strictness. might trigger errors where it was more tolerant for
defaultTableOptions.collate or charset in the Doctrine connection, or alternativelyClient::setCaseSensitiveEncoding() (e.g. utf8mb4_bin).symfony/cache, you need to restrict psr/simple-cache to ^1.0 || ^2.0 in your application because Symfony 5 does not declare a conflict with it, but fails at runtime.Repository::login with null credentials, there used to be an error. It now correctly works.jcr:createdBy or jcr:lastModifiedBy in node types, those properties are not set if the credentials are null.deleteProperties (#421)Allow installation with Symfony 7.
Nothing published for this version
Nothing published for this version
Require charset or collation to be configured on the dbal connection
Changes since 2.0.0-beta3
Fixed cache key sanitize for UUID map of referenceable nodes.
Fixed cache key sanitize for PSR-16 cache.
Added: Factory now accepts an optional parameter jackalope.case_sensitive_encoding to set Client::setCaseSensitiveEncoding .
jackalope.case_sensitive_encoding to set Client::setCaseSensitiveEncoding.jackalope.uuid_generatorFix: Sanitize cache key of entries with workspace name.
Fix regression of 1.11.0: Reference deletion should work regardless of upper or lowercase of the type names in XML data.
Improve delete properties performance by replace DOMDocument with xml_parse.
xml_parse.Bugfix: Correctly handle cache fetches in CachedClient BC layer.
CachedClient also supports PSR-16 simple cache instances instead of the doctrine cache. Support for doctrine/cache will be removed in version 2.
Allow installation with doctrine/cache 2.*. Cache 1.* is EOL. If you use doctrine/cache 2, you need a PSR implementation, e.g. symfony/cache, and need
2.*. Cache 1.* is EOL.
If you use doctrine/cache 2, you need a PSR implementation, e.g. symfony/cache, and need to pass a cache instance to the CachedClient.Bugfix: Use single quotes for SQL queries. Double quotes are not part of ANSI SQL.
Automatically add the portability middleware to lowercase all fields when using Oracle.
Fix to correctly handle SQLite connections when middleware is used by dbal.
Fix an edge case with postgres when searching for a node name with a double quote " in the search expression. Note that with MySQL, searching for a no
" in the search expression.
Note that with MySQL, searching for a node name with double quote no longer works due to wrong XPath handling in MySQL.Fix SQL injection in SQL2 queries: Escape xpaths in queries. See security advisory
Improve performance for deleting properties of nodes by using xpath. #390
Allow installation with PHP 7.2
Fixed DBAL 3 compatibility bug.
Improve performance for xml parsing by using the PHP ext-xml instead of ext-dom.
Improve performance for xml parsing by using the PHP ext-xml instead of ext-dom.
Jackalope\Transport\DoctrineDBALClient::mapPropertyFromElement is no longer called within the client. If you extended the client and call the method, things will still work as before, but it is recommended to refactor your code to use the XmlToPropsParser.
If you overwrote the method behaviour, your changes will no longer be applied because the method is not called anymore. We are not aware of any use case to overwrite the method - if you are affected, let us know in a github issue so that we can discuss how the problem can be fixed.
Fixed query cache to not treat 0 or null as cache misses.
0 or null as cache misses.Support PHP 8 and Doctrine DBAL 3
Early return in getNodeReferences if system id for path is not found.
Fix add primary keys to all tables
Fix moving nodes that are not in the default namespace
Support PHP 7.4, raise lowest version to 7.1
Fix ordering of namespaced children
[query builder] fix nested joins where clause generation
Use defaultTableOptions to detect collate of database connection, if available
defaultTableOptions to detect collate of database connection, if availableUse platform expression for concatenating
Detect utf8mb4 encoding and use shorter fields so MySQL can handle indexes on 4 byte UTF-8.
* Support PHP 7.2 * Allow Symfony 4 components
bugfix #339 fix datetime comparison with different timezones
setCaseSensitiveEncoding method has been introduced, which can be used to override
the auto detected value.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
Maintenance release with lots of new features and cleanups.
Maintenance release with lots of new features and cleanups.
Various bugfixes have been merged.
Various bugfixes have been merged.
2014-01-08: The fetch depth performance optimization is now fully supported.
2014-01-08: You now get a RepositoryException if you try to overwrite one of the built-in node types. In 1.0, you got no exception but the custom type with the same name as a built-in type was simply ignored.
2014-01-07: We now properly support LENGTH in queries. This required a change to the stored data. To update existing installations, you can use this migration: https://github.com/wjzijderveld/jackalope-doctrine-dbal-length-migration
2014-01-05: Allowing to set a closure for a custom uuid generator. Set
the parameter jackalope.uuid_generator to a function returning a UUID
string and pass it as parameter to the repository factory.
2014-01-04: mix:lastModified is now handled automatically. To disable,
set the option jackalope.auto_lastmodified to false.
2013-12-26: cleanup of phpcr-utils lead to adjust cli-config.php.dist. If you use the console, you need to sync your cli-config.php file with the dist file.
2013-12-14: Added support for logging PHPCR database queries.
2013-06-07: [#75] split the references into 2 tables
2013-06-07: [#75] split the references into 2 tables
This splits the phpcr_nodes_foreignkeys into two separate tables
Improves performance and allows using native deferred FK capabilities in the future
Migration steps
bin/jackalope jackalope:init:dbal --dump-sqlphpcr_nodes_references and phpcr_nodes_weakreferences.2013-06-01: [#109] ensure data is stored as UTC and returned in the default TZ
This enables consistent search query behavior regardless of the timezone used
Any existing stored nodes need to be modified, so that they are stored again to benefit from this change.
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 →