This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Tobias Schultze e5c96c4051 bug #42011 [Cache] Support decorated Dbal drivers in PdoAdapter (Jeroeny)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Support decorated Dbal drivers in PdoAdapter

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Explanation in this PR
| License       | MIT

Doctrine v3 supports middleware for Drivers. Upon creating the Connection, `middleware->wrap(Driver): Driver` [is called](https://github.com/doctrine/dbal/blob/3.1.x/src/DriverManager.php#L210), in which the middleware can wrap/decorate the Driver class. So that it can perform tracing [for example](https://github.com/getsentry/sentry-symfony/blob/master/src/Tracing/Doctrine/DBAL/TracingDriverMiddleware.php#L37).

When this happens, the Driver class inside the Connection is no longer one of Doctrine's well known Driver classes. The `PdoAdapter ` uses this class to determine the database platform. Which breaks once the Driver is decorated and no longer one of the classes [listed](https://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/Cache/Adapter/PdoAdapter.php#L452) in the `PdoAdapter`.

Since Dbal exposes this middleware as a feature, I think it would be nice for the `PdoAdapter` to support this.

To solve this, the `getDatabasePlatform` can be used. This returns a `Doctrine\DBAL\Platforms\AbstractPlatform` which defines the abstract method `getName`. This returns a value very similar to the list in the `PdoAdapter`. The names don't match exactly, so therefor a small mapping is done to get right the name used in the adapter. As far as a I know, there'd be no other implications with this change.

Related: https://github.com/getsentry/sentry-symfony/issues/530

Commits
-------

58d74e30be [Cache] Support decorated Dbal drivers in PdoAdapter
2021-07-14 22:18:05 +02:00
.github bug #42011 [Cache] Support decorated Dbal drivers in PdoAdapter (Jeroeny) 2021-07-14 22:18:05 +02:00
src/Symfony bug #42011 [Cache] Support decorated Dbal drivers in PdoAdapter (Jeroeny) 2021-07-14 22:18:05 +02:00
.appveyor.yml Tweak CI 2021-06-28 11:03:12 +02:00
.editorconfig Update .editorconfig 2018-09-06 16:22:56 +02:00
.gitattributes "export-ignore" contracts and phpunit-bridge 2021-01-22 10:53:35 +01:00
.gitignore Migrate configuration file for PHP CS Fixer 2.19/3.0 2021-05-15 21:29:53 +02:00
.php-cs-fixer.dist.php CS fixes 2021-06-30 15:02:00 +02:00
.travis.yml Tweak CI 2021-06-28 11:03:12 +02:00
CHANGELOG-4.0.md Merge branch '3.4' into 4.1 2018-08-01 18:22:14 +02:00
CHANGELOG-4.1.md updated CHANGELOG for 4.1.10 2019-01-06 17:16:07 +01:00
CHANGELOG-4.2.md updated CHANGELOG for 4.2.10 2019-06-26 16:19:37 +02:00
CHANGELOG-4.3.md updated CHANGELOG for 4.3.10 2020-01-21 14:13:32 +01:00
CHANGELOG-4.4.md Update CHANGELOG for 4.4.26 2021-06-30 10:15:30 +02:00
CODE_OF_CONDUCT.md Added the Code of Conduct file 2018-10-10 03:13:30 -07:00
CONTRIBUTING.md Mention the community review guide 2016-12-18 22:02:35 +01:00
CONTRIBUTORS.md Update CONTRIBUTORS for 4.4.26 2021-06-30 10:17:21 +02:00
LICENSE Bump license year 2021-01-01 10:24:35 +01:00
README.md Update README.md 2020-12-29 01:17:49 +01:00
UPGRADE-4.0.md Fix CS in changelogs 2020-12-10 17:34:26 +01:00
UPGRADE-4.1.md Merge branch '4.0' into 4.1 2018-05-31 12:17:53 +02:00
UPGRADE-4.2.md Merge branch '3.4' into 4.3 2020-01-08 18:19:22 +01:00
UPGRADE-4.3.md Merge branch '4.3' into 4.4 2019-11-19 13:20:06 +01:00
UPGRADE-4.4.md Fix CS in changelogs 2020-12-10 17:34:26 +01:00
UPGRADE-5.0.md Fix CS in changelogs 2020-12-10 17:34:26 +01:00
composer.json bug #39847 [Messenger] Fix merging PrototypedArrayNode associative values (svityashchuk) 2021-05-22 21:45:48 +02:00
link Fix CS in link binary 2020-12-10 19:02:00 +01:00
phpunit sync ./phpunit in all branches 2021-05-27 14:44:44 +02:00
phpunit.xml.dist Adds LDAP Adapter test in integration group 2020-11-16 15:17:13 +01:00
psalm.xml Adding a Github action to run Psalm 2021-02-25 17:18:18 +01:00

README.md

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. Symfony is used by thousands of web applications (including BlaBlaCar.com and Spotify.com) and most of the popular PHP projects (including Drupal and Magento).

Installation

Documentation

Community

Contributing

Symfony is an Open Source, community-driven project with thousands of contributors. Join them contributing code or contributing documentation.

Security Issues

If you discover a security vulnerability within Symfony, please follow our disclosure procedure.

About Us

Symfony development is sponsored by SensioLabs, led by the Symfony Core Team and supported by Symfony contributors.