From b3697c1ca0fa5ef7acb021a8bb7f24b17f9d98de Mon Sep 17 00:00:00 2001 From: Alan Poulain Date: Thu, 4 Mar 2021 15:22:20 +0100 Subject: [PATCH 1/3] fix: add @final to ORM filters --- src/Bridge/Doctrine/Orm/Filter/BooleanFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/DateFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/NumericFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/OrderFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/RangeFilter.php | 2 ++ src/Bridge/Doctrine/Orm/Filter/SearchFilter.php | 2 ++ 7 files changed, 14 insertions(+) diff --git a/src/Bridge/Doctrine/Orm/Filter/BooleanFilter.php b/src/Bridge/Doctrine/Orm/Filter/BooleanFilter.php index 3203f18b976..8c136c2c155 100644 --- a/src/Bridge/Doctrine/Orm/Filter/BooleanFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/BooleanFilter.php @@ -29,6 +29,8 @@ * * @author Amrouche Hamza * @author Teoh Han Hui + * + * @final */ class BooleanFilter extends AbstractContextAwareFilter { diff --git a/src/Bridge/Doctrine/Orm/Filter/DateFilter.php b/src/Bridge/Doctrine/Orm/Filter/DateFilter.php index 9970eadf3b4..b6010170f90 100644 --- a/src/Bridge/Doctrine/Orm/Filter/DateFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/DateFilter.php @@ -25,6 +25,8 @@ * * @author Kévin Dunglas * @author Théo FIDRY + * + * @final */ class DateFilter extends AbstractContextAwareFilter implements DateFilterInterface { diff --git a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php index 209adbef92a..8b97230ff74 100644 --- a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php @@ -37,6 +37,8 @@ * Interpretation: filter products which have a brand * * @author Teoh Han Hui + * + * @final */ class ExistsFilter extends AbstractContextAwareFilter implements ExistsFilterInterface { diff --git a/src/Bridge/Doctrine/Orm/Filter/NumericFilter.php b/src/Bridge/Doctrine/Orm/Filter/NumericFilter.php index eb5f0a692e7..1cbf3e2c507 100644 --- a/src/Bridge/Doctrine/Orm/Filter/NumericFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/NumericFilter.php @@ -28,6 +28,8 @@ * * @author Amrouche Hamza * @author Teoh Han Hui + * + * @final */ class NumericFilter extends AbstractContextAwareFilter { diff --git a/src/Bridge/Doctrine/Orm/Filter/OrderFilter.php b/src/Bridge/Doctrine/Orm/Filter/OrderFilter.php index e9829396abc..7eecd52d7b1 100644 --- a/src/Bridge/Doctrine/Orm/Filter/OrderFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/OrderFilter.php @@ -36,6 +36,8 @@ * * @author Kévin Dunglas * @author Théo FIDRY + * + * @final */ class OrderFilter extends AbstractContextAwareFilter implements OrderFilterInterface { diff --git a/src/Bridge/Doctrine/Orm/Filter/RangeFilter.php b/src/Bridge/Doctrine/Orm/Filter/RangeFilter.php index 394c65f9bc1..ead733e20e2 100644 --- a/src/Bridge/Doctrine/Orm/Filter/RangeFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/RangeFilter.php @@ -22,6 +22,8 @@ * Filters the collection by range. * * @author Lee Siong Chan + * + * @final */ class RangeFilter extends AbstractContextAwareFilter implements RangeFilterInterface { diff --git a/src/Bridge/Doctrine/Orm/Filter/SearchFilter.php b/src/Bridge/Doctrine/Orm/Filter/SearchFilter.php index 858406d421e..4ce6cd4ab75 100644 --- a/src/Bridge/Doctrine/Orm/Filter/SearchFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/SearchFilter.php @@ -35,6 +35,8 @@ * Filter the collection by given properties. * * @author Kévin Dunglas + * + * @final */ class SearchFilter extends AbstractContextAwareFilter implements SearchFilterInterface { From ff4cc596a0b63530a3e3ca3fcca7066016e5af8f Mon Sep 17 00:00:00 2001 From: Alan Poulain Date: Thu, 4 Mar 2021 15:34:02 +0100 Subject: [PATCH 2/3] chore: add changelog entry --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47df3d53557..aa00b184c1b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## 2.7.0 * **BC**: Change `api_platform.listener.request.add_format` priority from 7 to 28 to execute it before firewall (priority 8) (#3599) +* **BC**: Use `@final` annotation in ORM filters (#4109) * Doctrine: Better exception to find which resource is linked to an exception (#3965) * Doctrine: Allow mixed type value for date filter (notice if invalid) (#3870) * Doctrine: Add `nulls_always_first` and `nulls_always_last` to `nulls_comparison` in order filter (#4103) From deff241b507d01562e95dc3ffce1571c619a68ac Mon Sep 17 00:00:00 2001 From: Alan Poulain Date: Thu, 4 Mar 2021 16:21:12 +0100 Subject: [PATCH 3/3] fix: phpstan --- src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php index 8b97230ff74..24f86d31a35 100644 --- a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php @@ -76,7 +76,7 @@ protected function filterProperty(string $property, $value, QueryBuilder $queryB if (\func_num_args() > 6) { $context = func_get_arg(6); } else { - if (__CLASS__ !== static::class) { + if (__CLASS__ !== static::class) { /** @phpstan-ignore-line The class was not final before */ $r = new \ReflectionMethod($this, __FUNCTION__); if (__CLASS__ !== $r->getDeclaringClass()->getName()) { @trigger_error(sprintf('Method %s() will have a seventh `$context` argument in version API Platform 3.0. Not defining it is deprecated since API Platform 2.5.', __FUNCTION__), \E_USER_DEPRECATED);