Explorar el Código

doctrine interface namespace

Vincent hace 2 años
padre
commit
b3323932be

+ 1 - 1
composer.json

@@ -68,7 +68,7 @@
         "cyclonedx/cyclonedx-php-composer": "^3.4",
         "hautelook/alice-bundle": "^2.11",
         "phpstan/phpstan": "^1.9",
-        "phpunit/phpunit": "^9.6",
+        "phpunit/phpunit": "10.0.13",
         "rector/rector": "^0.15.13",
         "symfony/debug-bundle": "6.2.*",
         "symfony/maker-bundle": "^1.21",

+ 9 - 8
src/Doctrine/AbstractExtension.php

@@ -3,9 +3,10 @@ declare(strict_types=1);
 
 namespace App\Doctrine;
 
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
-use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use ApiPlatform\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
+use ApiPlatform\Doctrine\Orm\Extension\QueryItemExtensionInterface;
+use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use ApiPlatform\Metadata\Operation;
 use Doctrine\ORM\QueryBuilder;
 use Exception;
 
@@ -14,17 +15,17 @@ use Exception;
  */
 abstract class AbstractExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
 {
-    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
+    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, Operation $operation = null, array $context = []): void
     {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
+        $this->addWhere($queryBuilder, $resourceClass);
     }
 
-    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
+    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, Operation $operation = null, array $context = []): void
     {
-        $this->addWhere($queryBuilder, $resourceClass, $operationName);
+        $this->addWhere($queryBuilder, $resourceClass);
     }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         throw new Exception('need override addWhere function', 500);
     }

+ 16 - 3
src/Doctrine/Access/CurrentAccessExtension.php

@@ -3,7 +3,10 @@ declare(strict_types=1);
 
 namespace App\Doctrine\Access;
 
-use App\Doctrine\AbstractExtension;
+use ApiPlatform\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
+use ApiPlatform\Doctrine\Orm\Extension\QueryItemExtensionInterface;
+use ApiPlatform\Doctrine\Orm\Util\QueryNameGeneratorInterface;
+use ApiPlatform\Metadata\Operation;
 use App\Entity\Access\Access;
 use App\Service\ServiceIterator\CurrentAccessExtensionIterator;
 use Doctrine\ORM\QueryBuilder;
@@ -13,7 +16,7 @@ use Symfony\Bundle\SecurityBundle\Security;
  * Class CurrentAccessExtension : Filtre de sécurité par défaut pour une resource Access
  * @package App\Doctrine\Access
  */
-final class CurrentAccessExtension extends AbstractExtension
+final class CurrentAccessExtension  implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
 {
     public function __construct(
         private Security $security,
@@ -21,7 +24,17 @@ final class CurrentAccessExtension extends AbstractExtension
     )
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, Operation $operation = null, array $context = []): void
+    {
+        $this->addWhere($queryBuilder, $resourceClass, $operation?->getName());
+    }
+
+    public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, Operation $operation = null, array $context = []): void
+    {
+        $this->addWhere($queryBuilder, $resourceClass, $operation?->getName());
+    }
+
+    public function addWhere(QueryBuilder $queryBuilder, string $resourceClass, ?string $operationName): void
     {
         if (Access::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Access/CurrentUserPersonalizedListExtension.php

@@ -17,7 +17,7 @@ final class CurrentUserPersonalizedListExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (PersonalizedList::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Billing/CurrentResidenceAreaExtension.php

@@ -18,7 +18,7 @@ final class CurrentResidenceAreaExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (ResidenceArea::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Booking/CurrentCoursesExtension.php

@@ -21,7 +21,7 @@ final class CurrentCoursesExtension extends AbstractExtension
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (Course::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Core/AllowedAddressPostalExtension.php

@@ -18,7 +18,7 @@ final class AllowedAddressPostalExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (AddressPostal::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Core/CurrentNotificationUserExtension.php

@@ -22,7 +22,7 @@ final class CurrentNotificationUserExtension extends AbstractExtension
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (NotificationUser::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Core/CurrentUserNotificationExtension.php

@@ -21,7 +21,7 @@ final class CurrentUserNotificationExtension extends AbstractExtension
     /**
      * @todo : A la suite de la migration, il faut supprimer le where avec le discr.
      */
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (Notification::class !== $resourceClass) {
             return;

+ 2 - 1
src/Doctrine/Education/CurrentCycleExtension.php

@@ -18,7 +18,8 @@ final class CurrentCycleExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (Cycle::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Education/CurrentEducationNotationConfigExtension.php

@@ -18,7 +18,7 @@ final class CurrentEducationNotationConfigExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (EducationNotationConfig::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Education/CurrentEducationTimingExtension.php

@@ -18,7 +18,7 @@ final class CurrentEducationTimingExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (EducationTiming::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Network/CurrentNetworkOrganizationExtension.php

@@ -18,7 +18,7 @@ final class CurrentNetworkOrganizationExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (NetworkOrganization::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Organization/CurrentOrganizationAddressPostalExtension.php

@@ -18,7 +18,7 @@ final class CurrentOrganizationAddressPostalExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (OrganizationAddressPostal::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Organization/CurrentOrganizationArticleExtension.php

@@ -18,7 +18,7 @@ final class CurrentOrganizationArticleExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (OrganizationArticle::class !== $resourceClass) {
             return;

+ 1 - 1
src/Doctrine/Organization/CurrentOrganizationExtension.php

@@ -18,7 +18,7 @@ final class CurrentOrganizationExtension extends AbstractExtension
     public function __construct(private Security $security)
     { }
 
-    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
+    protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass): void
     {
         if (Organization::class !== $resourceClass) {
             return;