CurrentAccessExtensionIterator.php 608 B

12345678910111213141516171819202122
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Service\ServiceIterator;
  4. use App\Doctrine\Access\AccessExtensionInterface;
  5. use Doctrine\ORM\QueryBuilder;
  6. class CurrentAccessExtensionIterator {
  7. public function __construct(private iterable $extensions)
  8. { }
  9. public function addWhere(QueryBuilder $queryBuilder, $operationName) {
  10. /** @var AccessExtensionInterface $extension */
  11. foreach ($this->extensions as $extension){
  12. if($extension->support($operationName)) {
  13. $extension->addWhere($queryBuilder);
  14. break;
  15. }
  16. }
  17. }
  18. }