* 5.1:
[FrameworkBundle] Fix MicroKernelTrait for php 8
[DependencyInjection] Fixed tests for wither with static return type.
[HttpFoundation] Avoid TypeError when calling \SessionHandlerInterface::gc().
Don't call method_exists() with non-objects.
[Lock] skip tests when ext-mongo is not installed
[HttpClient] Adjust AmpResponse to the stricter trait handling in php 8.
[FrameworkBundle] don't use abstract methods in MicroKernelTrait, their semantics changed in PHP 8
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[FrameworkBundle] Fix MicroKernelTrait for php 8
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This PR fixes several php 8 related issues with `MicroKernelTrait`.
* Anonymous microkernel classes were not handled properly. I've added a test case to cover this scenario and fixed the issues.
* As part of the upgrade path, the trait logic parsed `TypeErrors` raised by php. That code broke because the wording of those errors has changed. I've replaced that logic with a hopefully less brittle reflection-based approach.
* In order to fix compatibility issues, @nicolas-grekas has already commented out the two abstract methods of the trait. If someone forgets to implement them, they would've ran into rather cryptic errors. I've added tests for these scenarios as well and introduced user-friendly exceptions.
I've noticed that implementing an old-style `configureContainer()` does not raise any deprecation. Is that on purpose? I really think that we should deprecate the old way, so we can re-add the abstract methods again in Symfony 6.
Commits
-------
7f3132ebe3 [FrameworkBundle] Fix MicroKernelTrait for php 8
This PR was merged into the 5.1 branch.
Discussion
----------
[HttpFoundation] Avoid TypeError when calling \SessionHandlerInterface::gc()
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This should fix the remaining red php 8 test of the HttpFoundation suite.
Commits
-------
12f734d8b3 [HttpFoundation] Avoid TypeError when calling \SessionHandlerInterface::gc().
This PR was merged into the 5.1 branch.
Discussion
----------
[DependencyInjection] Fixed tests for wither with static return type
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This PR fixes the remaining failing test on php 8 for the DependencyInjection suite.
Commits
-------
b27b535126 [DependencyInjection] Fixed tests for wither with static return type.
This PR was merged into the 5.1 branch.
Discussion
----------
[Lock] skip tests when ext-mongo is not installed
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
c0d4617820 [Lock] skip tests when ext-mongo is not installed
This PR was merged into the 5.1 branch.
Discussion
----------
[FrameworkBundle] don't use abstract methods in MicroKernelTrait, their semantics changed in PHP 8
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
In PHP 8, abstract methods on traits are now enforcing that their using classes match the signature.
But this is not the semantics we need in this trait: we want to allow ppl to use a different type of configurators, to provide extensibility of the DSL each provide.
This makes nightly job fail with fatal error currently.
There is no other options here.
/cc @nikic FYI
Commits
-------
4473f454ca [FrameworkBundle] don't use abstract methods in MicroKernelTrait, their semantics changed in PHP 8
* 5.1:
[travis] display deprecations in nightly jobs
Parse and render anonymous classes correctly on php 8
Enable APCu for the php 8 build.
[Process] Fix failing test on php 8.
[HttpKernel] fix test
Make PHP 8 green on Travis
Revert "[Cache] allow DBAL v3"
[PropertyAccessor] Added missing property path on php 8.
Don't execute tests with DBAL 2.x on php 8.
This PR was merged into the 3.4 branch.
Discussion
----------
[travis] display deprecations in nightly jobs
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
83a34a84ab [travis] display deprecations in nightly jobs
* 5.0:
Parse and render anonymous classes correctly on php 8
Enable APCu for the php 8 build.
[Process] Fix failing test on php 8.
[HttpKernel] fix test
Make PHP 8 green on Travis
Revert "[Cache] allow DBAL v3"
[PropertyAccessor] Added missing property path on php 8.
Don't execute tests with DBAL 2.x on php 8.
* 4.4:
Parse and render anonymous classes correctly on php 8
Enable APCu for the php 8 build.
[Process] Fix failing test on php 8.
[HttpKernel] fix test
Make PHP 8 green on Travis
Revert "[Cache] allow DBAL v3"
[PropertyAccessor] Added missing property path on php 8.
Don't execute tests with DBAL 2.x on php 8.
This PR was merged into the 4.4 branch.
Discussion
----------
Parse and render anonymous classes correctly on php 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
The format of the value that `get_class()` returns for anonymous classes has changed in php 8. This PR attempts to detect both formats, with the help of the PHP80 polyfill where possible.
Commits
-------
9d702fd94b Parse and render anonymous classes correctly on php 8
This PR was merged into the 3.4 branch.
Discussion
----------
Enable APCu for the php 8 build
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This PR enables APCu for the php 8 build on Travis.
Since the latest version release on PECL produces a lot of runtime warnings, I'm pulling the latest master commit from github.
Commits
-------
e3e1558a0b Enable APCu for the php 8 build.
This PR was merged into the 3.4 branch.
Discussion
----------
Make PHP 8 green on Travis
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | -
See #36872 for preparatory work and remaining steps.
Commits
-------
571d46cf01 Make PHP 8 green on Travis
This PR was merged into the 4.4 branch.
Discussion
----------
[PropertyAccessor] Added missing property path on php 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
This PR adds the property path to the exception message to fix failing tests on php 8.
Commits
-------
6a73bcdb8e [PropertyAccessor] Added missing property path on php 8.
This PR was merged into the 4.4 branch.
Discussion
----------
[Cache][Lock][Messenger] Don't execute tests with DBAL 2.x on php 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | N/A
Follow-up to #36895: If we autoload the `PDOConnection` from DBAL 2.x during a test on php8, our test suite goes 💥
What this PR does:
* Some more Cache tests are skipped if DBAL 2 is installed on php 8.
* The Lock and Messenger components are tested against DBAL 3.
Commits
-------
7dc3f9cb42 Don't execute tests with DBAL 2.x on php 8.
This PR was merged into the 4.4 branch.
Discussion
----------
[travis] skip extensions that dont compile on nightly
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | #36872
| License | MIT
| Doc PR | -
Commits
-------
c26044b0b1 [travis] skip extensions that dont compile on nightly