jackalope/jackalope-doctrine-dbal
Jackalope Transport library for Doctrine DBAL
2.0.3
3.1M downloads/mo
#4318 most downloaded on Packagist
jackalope/jackalope-doctrine-dbal
What this package is like to depend on
Last release 8 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
1 release in the last 12 months
see the full history below
Release timeline
66 releases · May 2013 to Nov 2025Releases
latest 60 of 66-
2.0.329 Nov 2025 -
2.0.209 Jul 2024 -
2.0.107 May 2024Release notes
Open source →- Fixed cache key sanitize for PSR-16 cache.
- Fixed not found detection for PSR-16 cache.
Release notes
Open source →- Fixed cache key sanitize for PSR-16 cache.
- Fixed not found detection for PSR-16 cache.
-
2.0.003 Apr 2024Release notes
Open source →- Added static typing wherever possible. This should not change anything, but the added strictness.
might trigger errors where it was more tolerant for incorrect types before. - Renamed cli-config.php.dist to cli-config.dist.php and cleaned up to be better documented.
- [BC Break]: CachedClient now expects a PSR-16 cache rather than the abandoned doctrine/cache.
When instantiating the client, you need to provide at least the cache instance for metadata, as CachedClient does not know which implementation to pick. - Support for new Symfony versions.
- Support for doctrine/dbal 4.
- For MySQL/MariaDB, it is now required to configure
defaultTableOptions.collateorcharsetin the Doctrine connection, or alternatively
set the encoding explicitly withClient::setCaseSensitiveEncoding()(e.g.utf8mb4_bin). - If you are on PHP 8.0 and install Jackalope with
symfony/cache, you need to restrictpsr/simple-cacheto^1.0 || ^2.0in your application because Symfony 5 does not declare a conflict with it, but fails at runtime. - Drop support for PHP 7.
- Fixed: While it is allowed to call
Repository::loginwithnullcredentials, there used to be an error. It now correctly works.
If you usejcr:createdByorjcr:lastModifiedByin node types, those properties are not set if the credentials arenull. - Improving the performance of
deleteProperties(#421) - Deleting dangling binary references when a property is removed or the whole node with a binary property is deleted (#426) - See UPGRADE.md for the recommended database changes.
- Allow installation with Symfony 7.
Release notes
Open source →- Added static typing wherever possible. This should not change anything, but the added strictness. might trigger errors where it was more tolerant for incorrect types before.
- Renamed cli-config.php.dist to cli-config.dist.php and cleaned up to be better documented.
- [BC Break]: CachedClient now expects a PSR-16 cache rather than the abandoned doctrine/cache. When instantiating the client, you need to provide at least the cache instance for metadata, as CachedClient does not know which implementation to pick.
- Support for new Symfony versions.
- Support for doctrine/dbal 4.
- For MySQL/MariaDB, it is now required to configure
defaultTableOptions.collateorcharsetin the Doctrine connection, or alternatively set the encoding explicitly withClient::setCaseSensitiveEncoding()(e.g.utf8mb4_bin). - If you are on PHP 8.0 and install Jackalope with
symfony/cache, you need to restrictpsr/simple-cacheto^1.0 || ^2.0in your application because Symfony 5 does not declare a conflict with it, but fails at runtime. - Drop support for PHP 7.
- Fixed: While it is allowed to call
Repository::loginwithnullcredentials, there used to be an error. It now correctly works. If you usejcr:createdByorjcr:lastModifiedByin node types, those properties are not set if the credentials arenull. - Improving the performance of
deleteProperties(#421) - Deleting dangling binary references when a property is removed or the whole node with a binary property is deleted (#426) - See UPGRADE.md for the recommended database changes.
- Allow installation with Symfony 7.
1.x
- Added static typing wherever possible. This should not change anything, but the added strictness.
-
2.0.0-beta308 Jan 2024 pre-release -
2.0.0-beta221 Nov 2023 pre-releaseNothing published for this version
-
2.0.0-beta120 Feb 2023 pre-releaseNothing published for this version
-
2.0.0-RC116 Feb 2024 pre-releaseRelease notes
Open source →Changes since 2.0.0-beta3
- Allow dbal 4
- Require charset or collation to be configured on the dbal connection
-
1.13.123 Jul 2025 -
1.13.006 May 2024Release notes
Open source →- Fixed cache key sanitize for PSR-16 cache.
- Fixed not found detection for PSR-16 cache.
Release notes
Open source →- Fixed cache key sanitize for PSR-16 cache.
- Fixed not found detection for PSR-16 cache.
-
1.12.003 Apr 2024Release notes
Open source →- Added: Factory now accepts an optional parameter
jackalope.case_sensitive_encodingto setClient::setCaseSensitiveEncoding. - Bugfix: Factory now actually accepts the optional parameter
jackalope.uuid_generator
Release notes
Open source →- Added: Factory now accepts an optional parameter
jackalope.case_sensitive_encodingto setClient::setCaseSensitiveEncoding. - Bugfix: Factory now actually accepts the optional parameter
jackalope.uuid_generator
- Added: Factory now accepts an optional parameter
-
1.11.230 Jan 2024 -
1.11.108 Jan 2024Release notes
Open source →- Fix regression of 1.11.0: Reference deletion should work regardless of upper or lowercase of the type names in XML data.
-
1.11.006 Jan 2024Release notes
Open source →- Improve delete properties performance by replace DOMDocument with
xml_parse.
- Improve delete properties performance by replace DOMDocument with
-
1.10.121 Nov 2023 -
1.10.021 Nov 2023Release notes
Open source →- CachedClient also supports PSR-16 simple cache instances instead of the doctrine cache. Support for doctrine/cache will be removed in version 2.
-
1.9.021 Feb 2023Release notes
Open source →- Allow installation with doctrine/cache
2.*. Cache1.*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.
- Allow installation with doctrine/cache
-
1.8.121 Feb 2023Release notes
Open source →- Bugfix: Use single quotes for SQL queries. Double quotes are not part of ANSI SQL.
-
1.8.012 Aug 2022Release notes
Open source →- Automatically add the portability middleware to lowercase all fields when using Oracle.
-
1.7.629 Apr 2022Release notes
Open source →- Fix to correctly handle SQLite connections when middleware is used by dbal.
-
1.7.514 Dec 2021Release notes
Open source →- 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 node name with double quote no longer works due to wrong XPath handling in MySQL.
- Fix an edge case with postgres when searching for a node name with a double quote
-
1.7.413 Dec 2021Release notes
Open source →- Fix SQL injection in SQL2 queries: Escape xpaths in queries. See security advisory
- Test with PHP 8.1
-
1.7.303 Nov 2021Release notes
Open source →- Improve performance for deleting properties of nodes by using xpath. #390
-
1.7.221 Oct 2021Release notes
Open source →- Allow installation with PHP 7.2
- Limit to doctrine/cache 1 as the code relies on code that was removed in doctrine/cache 2.
-
1.7.111 Oct 2021 -
1.7.007 Jun 2021Release notes
Open source →-
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.
-
-
1.6.113 Apr 2021 -
1.6.008 Dec 2020 -
1.5.122 Oct 2020 -
1.5.004 Aug 2020Release notes
Open source →- Fix add primary keys to all tables (https://www.percona.com/doc/percona-xtradb-cluster/LATEST/features/pxc-strict-mode.html#tables-without-primary-keys)
-
1.4.122 Dec 2019 -
1.4.018 Dec 2019 -
1.3.610 Dec 2019 -
1.3.523 Oct 2019 -
1.3.428 Aug 2019Release notes
Open source →- Use
defaultTableOptionsto detect collate of database connection, if available
- Use
-
1.3.318 Jan 2019Release notes
Open source →- Use platform expression for concatenating
- Fix return type of CachedClient::getNamespaces
-
1.3.229 Jan 2018Release notes
Open source →- Detect utf8mb4 encoding and use shorter fields so MySQL can handle indexes on 4 byte UTF-8.
-
1.3.122 Nov 2017 -
1.3.007 Apr 2017Release notes
Open source →- upgraded to PHP 5.6 / 7
- bugfix #339 fix datetime comparison with different timezones
- bugfix #337 Added auto-detection of binary collation for MySQL, so that not always utf8_bin is used.
A new
setCaseSensitiveEncodingmethod has been introduced, which can be used to override the auto detected value. - performance #336 better custom node type loading
- bugfix #333 keep sort order when clone/copying a node
-
1.2.809 Jun 2016Nothing published for this version
-
1.2.725 Apr 2016Nothing published for this version
-
1.2.625 Mar 2016Nothing published for this version
-
1.2.522 Jan 2016Nothing published for this version
-
1.2.420 Oct 2015Nothing published for this version
-
1.2.318 Oct 2015Nothing published for this version
-
1.2.225 Jun 2015Nothing published for this version
-
1.2.107 May 2015Nothing published for this version
-
1.2.002 May 2015Nothing published for this version
-
1.2.0-RC105 Apr 2015 pre-releaseNothing published for this version
-
1.1.502 May 2015Nothing published for this version
-
1.1.402 May 2015Nothing published for this version
-
1.1.301 May 2015Nothing published for this version
-
1.1.207 Aug 2014Nothing published for this version
-
1.1.104 Apr 2014Nothing published for this version
-
1.1.002 Feb 2014 -
1.1.0-RC108 Jan 2014 pre-releaseRelease notes
Open source →-
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_generatorto 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.
-
-
1.0.010 Oct 2013Release notes
Open source →-
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
- run
bin/jackalope jackalope:init:dbal --dump-sql - Copy and execute all tables, indexes etc related to
phpcr_nodes_referencesandphpcr_nodes_weakreferences. - Run the following SQL statements:
- INSERT INTO phpcr_nodes_references ( source_id, source_property_name, target_id ) SELECT source_id, source_property_name, target_id FROM phpcr_nodes_foreignkeys WHERE type = 9;
- INSERT INTO phpcr_nodes_weakreferences ( source_id, source_property_name, target_id ) SELECT source_id, source_property_name, target_id FROM phpcr_nodes_foreignkeys WHERE type = 10;
- DROP TABLE phpcr_nodes_foreignkeys;
- run
-
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.
-
-
1.0.0-beta411 Sep 2013 pre-releaseNothing published for this version
-
1.0.0-beta331 Jul 2013 pre-releaseNothing published for this version
-
1.0.0-beta211 Jul 2013 pre-releaseNothing published for this version