src/Entity/User.php line 19
<?phpnamespace App\Entity;use App\Repository\UserRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Doctrine\ORM\Mapping\JoinTable;use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;use Symfony\Component\Security\Core\User\UserInterface;use Vich\UploaderBundle\Mapping\Annotation as Vich;use \Symfony\Component\HttpFoundation\File\File;/*** @ORM\Entity(repositoryClass=UserRepository::class)* @Vich\Uploadable*/class User implements UserInterface, PasswordAuthenticatedUserInterface{/*** @ORM\Id* @ORM\GeneratedValue* @ORM\Column(type="integer")*/private $id;/*** @ORM\Column(type="string", length=180, unique=true)*/private $email;/*** @ORM\Column(type="json")*/private $roles = [];/*** @var string The hashed password* @ORM\Column(type="string")*/private $password;/*** @ORM\Column(type="string", length=255, nullable=true)*/private $firstName;/*** @ORM\Column(type="string", length=255, nullable=true)*/private $lastName;/*** @ORM\Column(type="string", length=255, nullable=true)* @var string*/private $image;/*** @Vich\UploadableField(mapping="teams_image", fileNameProperty="image")* @var File*/private $imageFile;/*** @ORM\ManyToMany(targetEntity=Project::class, inversedBy="users")* @JoinTable(name="user_project")*/private $projects;/*** @ORM\Column(type="string", length=255, nullable=true)*/private $slug;/*** @ORM\Column(type="text", nullable=true)*/private $content;/*** @ORM\Column(type="datetime", nullable=true)*/private $updatedAt;/*** @ORM\Column(type="string", length=150, nullable=true)*/private $jobs;public function __construct(){$this->projects = new ArrayCollection();}public function getId(): ?int{return $this->id;}public function getEmail(): ?string{return $this->email;}public function setEmail(string $email): self{$this->email = $email;return $this;}/*** A visual identifier that represents this user.** @see UserInterface*/public function getUserIdentifier(): string{return (string) $this->email;}/*** @deprecated since Symfony 5.3, use getUserIdentifier instead*/public function getUsername(): string{return (string) $this->email;}/*** @see UserInterface*/public function getRoles(): array{$roles = $this->roles;// guarantee every user at least has ROLE_USER$roles[] = 'ROLE_USER';return array_unique($roles);}/*** @param array $roles* @return User*/public function setRoles(array $roles): self{$this->roles = $roles;return $this;}/*** @see PasswordAuthenticatedUserInterface*/public function getPassword(): string{return $this->password;}public function setPassword(string $password): self{$this->password = $password;return $this;}/*** Returning a salt is only needed, if you are not using a modern* hashing algorithm (e.g. bcrypt or sodium) in your security.yaml.** @see UserInterface*/public function getSalt(): ?string{return null;}/*** @see UserInterface*/public function eraseCredentials(): void{// If you store any temporary, sensitive data on the user, clear it here// $this->plainPassword = null;}public function getFirstName(): ?string{return $this->firstName;}public function setFirstName(?string $firstName): self{$this->firstName = $firstName;return $this;}public function getLastName(): ?string{return $this->lastName;}public function setLastName(?string $lastName): self{$this->lastName = $lastName;return $this;}public function getImage(): ?string{return $this->image;}public function setImage(?string $image): self{$this->image = $image;return $this;}public function getImageFile(){return $this->imageFile;}/*** @param \Symfony\Component\HttpFoundation\File\File|null $imageFile*/public function setImageFile(File $imageFile = null): void{$this->imageFile = $imageFile;if ($imageFile) {$this->updatedAt = new \DateTime('now');}}/*** @return Collection|Project[]*/public function getProjects(): Collection{return $this->projects;}public function addProject(Project $project): self{if (!$this->projects->contains($project)) {$this->projects[] = $project;}return $this;}public function removeProject(Project $project): self{$this->projects->removeElement($project);return $this;}public function getSlug(): ?string{return $this->slug;}public function setSlug(?string $slug): self{$this->slug = $slug;return $this;}public function getContent(): ?string{return $this->content;}public function setContent(?string $content): self{$this->content = $content;return $this;}public function getUpdatedAt(): ?\DateTimeInterface{return $this->updatedAt;}public function setUpdatedAt(?\DateTimeInterface $updatedAt): self{$this->updatedAt = $updatedAt;return $this;}public function getFullname(): string{return $this->getFirstName().' '.$this->getLastName();}public function getJobs(): ?string{return $this->jobs;}public function setJobs(?string $jobs): self{$this->jobs = $jobs;return $this;}}