AbstractExtension.php 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Doctrine;
  4. use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryCollectionExtensionInterface;
  5. use ApiPlatform\Core\Bridge\Doctrine\Orm\Extension\QueryItemExtensionInterface;
  6. use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
  7. use Doctrine\ORM\QueryBuilder;
  8. use Exception;
  9. /**
  10. * Classe ... qui ...
  11. */
  12. abstract class AbstractExtension implements QueryCollectionExtensionInterface, QueryItemExtensionInterface
  13. {
  14. public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null): void
  15. {
  16. $this->addWhere($queryBuilder, $resourceClass, $operationName);
  17. }
  18. public function applyToItem(QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, array $identifiers, string $operationName = null, array $context = []): void
  19. {
  20. $this->addWhere($queryBuilder, $resourceClass, $operationName);
  21. }
  22. protected function addWhere(QueryBuilder $queryBuilder, string $resourceClass, string $operationName): void
  23. {
  24. throw new Exception('need override addWhere function', 500);
  25. }
  26. }