vendor/shopware/core/Framework/Adapter/Twig/Extension/MediaExtension.php line 37

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Framework\Adapter\Twig\Extension;
  3. use Shopware\Core\Content\Media\MediaCollection;
  4. use Shopware\Core\Framework\Context;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepositoryInterface;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  7. use Twig\Extension\AbstractExtension;
  8. use Twig\TwigFunction;
  9. /**
  10.  * @package core
  11.  */
  12. class MediaExtension extends AbstractExtension
  13. {
  14.     /**
  15.      * @var EntityRepositoryInterface
  16.      */
  17.     private $mediaRepository;
  18.     /**
  19.      * @internal
  20.      */
  21.     public function __construct(EntityRepositoryInterface $mediaRepository)
  22.     {
  23.         $this->mediaRepository $mediaRepository;
  24.     }
  25.     public function getFunctions(): array
  26.     {
  27.         return [
  28.             new TwigFunction('searchMedia', [$this'searchMedia']),
  29.         ];
  30.     }
  31.     public function searchMedia(array $idsContext $context): MediaCollection
  32.     {
  33.         if (empty($ids)) {
  34.             return new MediaCollection();
  35.         }
  36.         $criteria = new Criteria($ids);
  37.         /** @var MediaCollection $media */
  38.         $media $this->mediaRepository
  39.             ->search($criteria$context)
  40.             ->getEntities();
  41.         return $media;
  42.     }
  43. }