vendor/shopware/core/Content/Product/Aggregate/ProductMedia/ProductMediaCollection.php line 13

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Product\Aggregate\ProductMedia;
  3. use Shopware\Core\Content\Media\MediaCollection;
  4. use Shopware\Core\Framework\DataAbstractionLayer\EntityCollection;
  5. use Shopware\Core\Framework\Log\Package;
  6. /**
  7.  * @extends EntityCollection<ProductMediaEntity>
  8.  */
  9. #[Package('inventory')]
  10. class ProductMediaCollection extends EntityCollection
  11. {
  12.     /**
  13.      * @return list<string>
  14.      */
  15.     public function getProductIds(): array
  16.     {
  17.         return $this->fmap(function (ProductMediaEntity $productMedia) {
  18.             return $productMedia->getProductId();
  19.         });
  20.     }
  21.     public function filterByProductId(string $id): self
  22.     {
  23.         return $this->filter(function (ProductMediaEntity $productMedia) use ($id) {
  24.             return $productMedia->getProductId() === $id;
  25.         });
  26.     }
  27.     /**
  28.      * @return list<string>
  29.      */
  30.     public function getMediaIds(): array
  31.     {
  32.         return $this->fmap(function (ProductMediaEntity $productMedia) {
  33.             return $productMedia->getMediaId();
  34.         });
  35.     }
  36.     public function filterByMediaId(string $id): self
  37.     {
  38.         return $this->filter(function (ProductMediaEntity $productMedia) use ($id) {
  39.             return $productMedia->getMediaId() === $id;
  40.         });
  41.     }
  42.     public function getMedia(): MediaCollection
  43.     {
  44.         return new MediaCollection(
  45.             $this->fmap(function (ProductMediaEntity $productMedia) {
  46.                 return $productMedia->getMedia();
  47.             })
  48.         );
  49.     }
  50.     public function getApiAlias(): string
  51.     {
  52.         return 'product_media_collection';
  53.     }
  54.     protected function getExpectedClass(): string
  55.     {
  56.         return ProductMediaEntity::class;
  57.     }
  58. }