src/Entity/PersonalFolder.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Entity\Common\LibraryVoterInterface;
  4. use App\Entity\Common\ResourceFolderInterface;
  5. use App\Entity\Traits\FolderTrait;
  6. use App\Repository\PersonalFolderRepository;
  7. use App\Security\Voter\Library\PersonalLibraryVoter;
  8. use Doctrine\Common\Collections\ArrayCollection;
  9. use Doctrine\Common\Collections\Collection;
  10. use Doctrine\ORM\Mapping as ORM;
  11. #[ORM\Entity(repositoryClassPersonalFolderRepository::class)]
  12. #[ORM\HasLifecycleCallbacks]
  13. class PersonalFolder implements LibraryVoterInterfaceResourceFolderInterface
  14. {
  15.     use FolderTrait;
  16.     #[ORM\OneToMany(targetEntityPersonalResource::class, mappedBy'personalFolder')]
  17.     private $personalResources;
  18.     #[ORM\ManyToOne(targetEntityUser::class, inversedBy'personalFolders')]
  19.     private $user;
  20.     #[ORM\OneToMany(targetEntityPersonalFolder::class, mappedBy'parent')]
  21.     protected $children;
  22.     #[ORM\ManyToOne(targetEntityPersonalFolder::class, inversedBy'children')]
  23.     #[ORM\JoinColumn(name'parent'referencedColumnName'id'onDelete'CASCADE')]
  24.     private $parent;
  25.     public function __construct()
  26.     {
  27.         $this->personalResources = new ArrayCollection();
  28.         $this->children = new ArrayCollection();
  29.     }
  30.     /**
  31.      * @return Collection|PersonalResource[]
  32.      */
  33.     public function getPersonalResources(): Collection
  34.     {
  35.         return $this->personalResources;
  36.     }
  37.     public function addPersonalResource(PersonalResource $personalResource): self
  38.     {
  39.         if (!$this->personalResources->contains($personalResource)) {
  40.             $this->personalResources[] = $personalResource;
  41.             $personalResource->setPersonalFolder($this);
  42.         }
  43.         return $this;
  44.     }
  45.     public function removePersonalResource(PersonalResource $personalResource): self
  46.     {
  47.         if ($this->personalResources->removeElement($personalResource)) {
  48.             // set the owning side to null (unless already changed)
  49.             if ($personalResource->getPersonalFolder() === $this) {
  50.                 $personalResource->setPersonalFolder(null);
  51.             }
  52.         }
  53.         return $this;
  54.     }
  55.     public function getUser(): ?User
  56.     {
  57.         return $this->user;
  58.     }
  59.     public function setUser(?User $user): self
  60.     {
  61.         $this->user $user;
  62.         return $this;
  63.     }
  64.     /**
  65.      * {@inheritdoc}
  66.      */
  67.     public function getLibraryVoter(): string
  68.     {
  69.         return PersonalLibraryVoter::class;
  70.     }
  71.     /**
  72.      * {@inheritdoc}
  73.      */
  74.     public function getResources(): ?array
  75.     {
  76.         return $this->personalResources->toArray();
  77.     }
  78.     public function getParent(): ?self
  79.     {
  80.         return $this->parent;
  81.     }
  82.     public function setParent(?self $parent): self
  83.     {
  84.         $this->parent $parent;
  85.         return $this;
  86.     }
  87.     public function getChildren(): Collection
  88.     {
  89.         return $this->children;
  90.     }
  91.     public function hasChildren(): bool
  92.     {
  93.         return count($this->children) > true false;
  94.     }
  95. }