for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace Loevgaard\SyliusBrandPlugin\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Sylius\Component\Core\Model\ImageInterface;
trait ImagesAwareTrait
{
/** @var Collection|ImageInterface[] */
protected $images;
public function initializeImagesCollection(): void
$this->images = new ArrayCollection();
}
/**
* {@inheritdoc}
*/
public function getImages(): Collection
return $this->images;
public function getImagesByType(string $type): Collection
return $this->images->filter(function (ImageInterface $image) use ($type) {
return $type === $image->getType();
});
public function hasImages(): bool
return !$this->images->isEmpty();
public function hasImage(ImageInterface $image): bool
return $this->images->contains($image);
public function addImage(ImageInterface $image): void
if (false === $this->hasImage($image)) {
$image->setOwner($this);
$this->images->add($image);
public function removeImage(ImageInterface $image): void
if ($this->hasImage($image)) {
$image->setOwner(null);
$this->images->removeElement($image);