refactor: Upgrade repositories.

This commit is contained in:
Pol Dellaiera 2021-05-06 11:43:14 +02:00
parent 55695b7d2c
commit 174d873398
40 changed files with 324 additions and 292 deletions

View File

@ -37,3 +37,7 @@ services:
- "%chill_person.validation.birtdate_not_before%" - "%chill_person.validation.birtdate_not_before%"
tags: tags:
- { name: validator.constraint_validator, alias: birthdate_not_before } - { name: validator.constraint_validator, alias: birthdate_not_before }
Chill\PersonBundle\Repository\:
resource: '../src/Repository/'
tags: ['doctrine.repository_service']

View File

@ -2,24 +2,6 @@ services:
chill.person.repository.person: chill.person.repository.person:
class: Chill\PersonBundle\Repository\PersonRepository class: Chill\PersonBundle\Repository\PersonRepository
factory: ['@doctrine.orm.entity_manager', getRepository] autowire: true
arguments: autoconfigure: true
- 'Chill\PersonBundle\Entity\Person'
Chill\PersonBundle\Repository\PersonRepository: '@chill.person.repository.person' Chill\PersonBundle\Repository\PersonRepository: '@chill.person.repository.person'
Chill\PersonBundle\Repository\AccompanyingPeriod\ClosingMotiveRepository:
class: Chill\PersonBundle\Repository\AccompanyingPeriod\ClosingMotiveRepository
factory: ['@doctrine.orm.entity_manager', getRepository]
arguments:
- 'Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive'
Chill\PersonBundle\Repository\AccompanyingPeriodRepository:
class: Chill\PersonBundle\Repository\AccompanyingPeriodRepository
tags: [ doctrine.repository_service ]
arguments:
- '@Doctrine\Persistence\ManagerRegistry'
Chill\PersonBundle\Repository\AccompanyingPeriodParticipationRepository:
arguments:
- '@Doctrine\Persistence\ManagerRegistry'
tags: [ doctrine.repository_service ]

View File

@ -38,6 +38,7 @@ use Symfony\Component\Translation\TranslatorInterface;
use Chill\MainBundle\Search\SearchProvider; use Chill\MainBundle\Search\SearchProvider;
use Chill\PersonBundle\Repository\PersonRepository; use Chill\PersonBundle\Repository\PersonRepository;
use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper; use Chill\PersonBundle\Config\ConfigPersonAltNamesHelper;
use Chill\PersonBundle\Repository\PersonNotDuplicateRepository;
use Symfony\Component\Validator\Validator\ValidatorInterface; use Symfony\Component\Validator\Validator\ValidatorInterface;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
@ -290,7 +291,7 @@ final class PersonController extends AbstractController
return $errors; return $errors;
} }
public function reviewAction(Request $request) public function reviewAction(Request $request, PersonNotDuplicateRepository $personNotDuplicateRepository)
{ {
if ($request->getMethod() !== 'POST') { if ($request->getMethod() !== 'POST') {
$r = new Response("You must send something to review the creation of a new Person"); $r = new Response("You must send something to review the creation of a new Person");
@ -342,8 +343,7 @@ final class PersonController extends AbstractController
$this->em->persist($person); $this->em->persist($person);
$alternatePersons = $this->similarPersonMatcher $alternatePersons = $this->similarPersonMatcher->matchPerson($person, $personNotDuplicateRepository);
->matchPerson($person);
if (count($alternatePersons) === 0) { if (count($alternatePersons) === 0) {
return $this->forward('ChillPersonBundle:Person:create'); return $this->forward('ChillPersonBundle:Person:create');

View File

@ -19,6 +19,7 @@ use Symfony\Component\Translation\TranslatorInterface;
use Chill\ActivityBundle\Entity\Activity; use Chill\ActivityBundle\Entity\Activity;
use Chill\DocStoreBundle\Entity\PersonDocument; use Chill\DocStoreBundle\Entity\PersonDocument;
use Chill\EventBundle\Entity\Participation; use Chill\EventBundle\Entity\Participation;
use Chill\PersonBundle\Repository\PersonNotDuplicateRepository;
use Chill\TaskBundle\Entity\SingleTask; use Chill\TaskBundle\Entity\SingleTask;
class PersonDuplicateController extends Controller class PersonDuplicateController extends Controller
@ -62,7 +63,7 @@ class PersonDuplicateController extends Controller
$this->eventDispatcher = $eventDispatcher; $this->eventDispatcher = $eventDispatcher;
} }
public function viewAction($person_id) public function viewAction($person_id, PersonNotDuplicateRepository $personNotDuplicateRepository)
{ {
$person = $this->_getPerson($person_id); $person = $this->_getPerson($person_id);
if ($person === null) { if ($person === null) {
@ -76,8 +77,7 @@ class PersonDuplicateController extends Controller
$duplicatePersons = $this->similarPersonMatcher-> $duplicatePersons = $this->similarPersonMatcher->
matchPerson($person, 0.5, SimilarPersonMatcher::SIMILAR_SEARCH_ORDER_BY_ALPHABETICAL); matchPerson($person, 0.5, SimilarPersonMatcher::SIMILAR_SEARCH_ORDER_BY_ALPHABETICAL);
$notDuplicatePersons = $this->getDoctrine()->getRepository(PersonNotDuplicate::class) $notDuplicatePersons = $personNotDuplicateRepository->findNotDuplicatePerson($person);
->findNotDuplicatePerson($person);
return $this->render('ChillPersonBundle:PersonDuplicate:view.html.twig', [ return $this->render('ChillPersonBundle:PersonDuplicate:view.html.twig', [
'person' => $person, 'person' => $person,
@ -97,7 +97,7 @@ class PersonDuplicateController extends Controller
$person1->counters = $this->_getCounters($person1_id); $person1->counters = $this->_getCounters($person1_id);
$person2->counters = $this->_getCounters($person2_id); $person2->counters = $this->_getCounters($person2_id);
if ($person1 === null) { if ($person1 === null) {
throw $this->createNotFoundException("Person with id $person1_id not" throw $this->createNotFoundException("Person with id $person1_id not"
. " found on this server"); . " found on this server");
@ -264,17 +264,17 @@ class PersonDuplicateController extends Controller
return [$person1, $person2]; return [$person1, $person2];
} }
private function _getCounters($id): ?array private function _getCounters($id): ?array
{ {
$em = $this->getDoctrine()->getManager(); $em = $this->getDoctrine()->getManager();
$nb_activity = $em->getRepository(Activity::class)->findBy(['person'=>$id]); $nb_activity = $em->getRepository(Activity::class)->findBy(['person'=>$id]);
$nb_document = $em->getRepository(PersonDocument::class)->findBy(['person'=>$id]); $nb_document = $em->getRepository(PersonDocument::class)->findBy(['person'=>$id]);
$nb_event = $em->getRepository(Participation::class)->findBy(['person'=>$id]); $nb_event = $em->getRepository(Participation::class)->findBy(['person'=>$id]);
$nb_task = $em->getRepository(SingleTask::class)->countByParameters(['person'=>$id]); $nb_task = $em->getRepository(SingleTask::class)->countByParameters(['person'=>$id]);
$person = $em->getRepository(Person::class)->findOneBy(['id'=>$id]); $person = $em->getRepository(Person::class)->findOneBy(['id'=>$id]);
return [ return [
'nb_activity' => count($nb_activity), 'nb_activity' => count($nb_activity),
'nb_document' => count($nb_document), 'nb_document' => count($nb_document),

View File

@ -37,43 +37,43 @@ use Chill\MainBundle\Entity\User;
/** /**
* AccompanyingPeriod Class * AccompanyingPeriod Class
* *
* @ORM\Entity(repositoryClass="Chill\PersonBundle\Repository\AccompanyingPeriodRepository") * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period") * @ORM\Table(name="chill_person_accompanying_period")
*/ */
class AccompanyingPeriod class AccompanyingPeriod
{ {
/** /**
* Mark an accompanying period as "occasional" * Mark an accompanying period as "occasional"
* *
* used in INTENSITY * used in INTENSITY
*/ */
public const INTENSITY_OCCASIONAL = 'occasional'; public const INTENSITY_OCCASIONAL = 'occasional';
/** /**
* Mark an accompanying period as "regular" * Mark an accompanying period as "regular"
* *
* used in INTENSITY * used in INTENSITY
*/ */
public const INTENSITY_REGULAR = 'regular'; public const INTENSITY_REGULAR = 'regular';
public const INTENSITIES = [self::INTENSITY_OCCASIONAL, self::INTENSITY_REGULAR]; public const INTENSITIES = [self::INTENSITY_OCCASIONAL, self::INTENSITY_REGULAR];
/** /**
* Mark an accompanying period as "draft". * Mark an accompanying period as "draft".
* *
* This means that the accompanying period is not yet * This means that the accompanying period is not yet
* confirmed by the creator * confirmed by the creator
*/ */
public const STEP_DRAFT = 'DRAFT'; public const STEP_DRAFT = 'DRAFT';
/** /**
* Mark an accompanying period as "confirmed". * Mark an accompanying period as "confirmed".
* *
* This means that the accompanying period **is** * This means that the accompanying period **is**
* confirmed by the creator * confirmed by the creator
*/ */
public const STEP_CONFIRMED = 'CONFIRMED'; public const STEP_CONFIRMED = 'CONFIRMED';
/** /**
* @var integer * @var integer
* *
@ -148,7 +148,7 @@ class AccompanyingPeriod
* @ORM\Column(type="string", length=32, nullable=true) * @ORM\Column(type="string", length=32, nullable=true)
*/ */
private $step = self::STEP_DRAFT; private $step = self::STEP_DRAFT;
/** /**
* @ORM\ManyToOne(targetEntity=Origin::class) * @ORM\ManyToOne(targetEntity=Origin::class)
* @ORM\JoinColumn(nullable=true) * @ORM\JoinColumn(nullable=true)

View File

@ -4,7 +4,6 @@ namespace Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\SocialWork\Result; use Chill\PersonBundle\Entity\SocialWork\Result;
use Chill\PersonBundle\Entity\SocialWork\SocialAction; use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Chill\PersonBundle\Repository\AccompanyingPeriod\AccompanyingPeriodWorkRepository;
use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\User;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\ThirdPartyBundle\Entity\ThirdParty; use Chill\ThirdPartyBundle\Entity\ThirdParty;
@ -13,7 +12,7 @@ use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=AccompanyingPeriodWorkRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_work") * @ORM\Table(name="chill_person_accompanying_period_work")
*/ */
class AccompanyingPeriodWork class AccompanyingPeriodWork

View File

@ -4,13 +4,12 @@ namespace Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\SocialWork\Goal; use Chill\PersonBundle\Entity\SocialWork\Goal;
use Chill\PersonBundle\Entity\SocialWork\Result; use Chill\PersonBundle\Entity\SocialWork\Result;
use Chill\PersonBundle\Repository\AccompanyingPeriod\AccompanyingPeriodWorkGoalRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=AccompanyingPeriodWorkGoalRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_work_goal") * @ORM\Table(name="chill_person_accompanying_period_work_goal")
*/ */
class AccompanyingPeriodWorkGoal class AccompanyingPeriodWorkGoal

View File

@ -29,8 +29,7 @@ use Doctrine\Common\Collections\ArrayCollection;
/** /**
* ClosingMotive give an explanation why we closed the Accompanying period * ClosingMotive give an explanation why we closed the Accompanying period
* *
* @ORM\Entity( * @ORM\Entity
* repositoryClass="Chill\PersonBundle\Repository\AccompanyingPeriod\ClosingMotiveRepository")
* @ORM\Table(name="chill_person_accompanying_period_closingmotive") * @ORM\Table(name="chill_person_accompanying_period_closingmotive")
*/ */
class ClosingMotive class ClosingMotive
@ -50,14 +49,14 @@ class ClosingMotive
* @ORM\Column(type="json") * @ORM\Column(type="json")
*/ */
private $name; private $name;
/** /**
* @var boolean * @var boolean
* *
* @ORM\Column(type="boolean") * @ORM\Column(type="boolean")
*/ */
private $active = true; private $active = true;
/** /**
* @var self * @var self
* *
@ -66,7 +65,7 @@ class ClosingMotive
* inversedBy="children") * inversedBy="children")
*/ */
private $parent = null; private $parent = null;
/** /**
* Child Accompanying periods * Child Accompanying periods
* @var Collection * @var Collection
@ -76,15 +75,15 @@ class ClosingMotive
* mappedBy="parent") * mappedBy="parent")
*/ */
private $children; private $children;
/** /**
* @var float * @var float
* *
* @ORM\Column(type="float") * @ORM\Column(type="float")
*/ */
private $ordering = 0.0; private $ordering = 0.0;
/** /**
* ClosingMotive constructor. * ClosingMotive constructor.
*/ */
@ -92,7 +91,7 @@ class ClosingMotive
{ {
$this->children = new ArrayCollection(); $this->children = new ArrayCollection();
} }
/** /**
* Get id * Get id
* *
@ -126,7 +125,7 @@ class ClosingMotive
{ {
return $this->name; return $this->name;
} }
/** /**
* @return bool * @return bool
*/ */
@ -134,7 +133,7 @@ class ClosingMotive
{ {
return $this->active; return $this->active;
} }
/** /**
* @param bool $active * @param bool $active
* @return $this * @return $this
@ -142,16 +141,16 @@ class ClosingMotive
public function setActive(bool $active) public function setActive(bool $active)
{ {
$this->active = $active; $this->active = $active;
if ($this->active === FALSE) { if ($this->active === FALSE) {
foreach ($this->getChildren() as $child) { foreach ($this->getChildren() as $child) {
$child->setActive(FALSE); $child->setActive(FALSE);
} }
} }
return $this; return $this;
} }
/** /**
* @return ClosingMotive * @return ClosingMotive
*/ */
@ -159,7 +158,7 @@ class ClosingMotive
{ {
return $this->parent; return $this->parent;
} }
/** /**
* @return Collection * @return Collection
*/ */
@ -167,7 +166,7 @@ class ClosingMotive
{ {
return $this->children; return $this->children;
} }
/** /**
* @param ClosingMotive|null $parent * @param ClosingMotive|null $parent
* @return ClosingMotive * @return ClosingMotive
@ -175,14 +174,14 @@ class ClosingMotive
public function setParent(?ClosingMotive $parent): ClosingMotive public function setParent(?ClosingMotive $parent): ClosingMotive
{ {
$this->parent = $parent; $this->parent = $parent;
if (NULL !== $parent) { if (NULL !== $parent) {
//$parent->addChildren($this); //$parent->addChildren($this);
} }
return $this; return $this;
} }
/** /**
* @param Collection $children * @param Collection $children
* @return ClosingMotive * @return ClosingMotive
@ -190,10 +189,10 @@ class ClosingMotive
public function setChildren(Collection $children): ClosingMotive public function setChildren(Collection $children): ClosingMotive
{ {
$this->children = $children; $this->children = $children;
return $this; return $this;
} }
/** /**
* @param ClosingMotive $child * @param ClosingMotive $child
* @return ClosingMotive * @return ClosingMotive
@ -203,13 +202,13 @@ class ClosingMotive
if ($this->children->contains($child)) { if ($this->children->contains($child)) {
return $this; return $this;
} }
$this->children->add($child); $this->children->add($child);
$child->setParent($this); $child->setParent($this);
return $this; return $this;
} }
/** /**
* @param ClosingMotive $child * @param ClosingMotive $child
* @return ClosingMotive * @return ClosingMotive
@ -219,10 +218,10 @@ class ClosingMotive
if ($this->children->removeElement($child)) { if ($this->children->removeElement($child)) {
$child->setParent(null); $child->setParent(null);
} }
return $this; return $this;
} }
/** /**
* @return float * @return float
*/ */
@ -230,7 +229,7 @@ class ClosingMotive
{ {
return $this->ordering; return $this->ordering;
} }
/** /**
* @param float $ordering * @param float $ordering
* @return $this * @return $this
@ -238,10 +237,10 @@ class ClosingMotive
public function setOrdering(float $ordering) public function setOrdering(float $ordering)
{ {
$this->ordering = $ordering; $this->ordering = $ordering;
return $this; return $this;
} }
/** /**
* @return bool * @return bool
*/ */
@ -249,7 +248,7 @@ class ClosingMotive
{ {
return $this->parent !== null; return $this->parent !== null;
} }
/** /**
* @return bool * @return bool
*/ */
@ -257,7 +256,7 @@ class ClosingMotive
{ {
return $this->children->count() > 0; return $this->children->count() > 0;
} }
/** /**
* @return bool * @return bool
*/ */
@ -265,7 +264,7 @@ class ClosingMotive
{ {
return $this->children->count() === 0; return $this->children->count() === 0;
} }
/** /**
* @return bool * @return bool
*/ */

View File

@ -22,13 +22,12 @@
namespace Chill\PersonBundle\Entity\AccompanyingPeriod; namespace Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Repository\AccompanyingPeriod\CommentRepository;
use Chill\MainBundle\Entity\User; use Chill\MainBundle\Entity\User;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=CommentRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_comment") * @ORM\Table(name="chill_person_accompanying_period_comment")
*/ */
class Comment class Comment

View File

@ -22,11 +22,10 @@
namespace Chill\PersonBundle\Entity\AccompanyingPeriod; namespace Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\OriginRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=OriginRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_origin") * @ORM\Table(name="chill_person_accompanying_period_origin")
*/ */
class Origin class Origin

View File

@ -22,7 +22,6 @@
namespace Chill\PersonBundle\Entity\AccompanyingPeriod; namespace Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Repository\AccompanyingPeriod\ResourceRepository;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Comment; use Chill\PersonBundle\Entity\AccompanyingPeriod\Comment;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
@ -30,7 +29,7 @@ use Chill\ThirdPartyBundle\Entity\ThirdParty;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=ResourceRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_resource") * @ORM\Table(name="chill_person_accompanying_period_resource")
*/ */
class Resource class Resource
@ -121,7 +120,7 @@ class Resource
return $this; return $this;
} }
/** /**
* @return Person|ThirdParty * @return Person|ThirdParty
*/ */

View File

@ -22,7 +22,6 @@
namespace Chill\PersonBundle\Entity; namespace Chill\PersonBundle\Entity;
use Chill\PersonBundle\Repository\AccompanyingPeriodParticipationRepository;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
@ -31,7 +30,7 @@ use Doctrine\ORM\Mapping as ORM;
* AccompanyingPeriodParticipation Class * AccompanyingPeriodParticipation Class
* *
* @package Chill\PersonBundle\Entity * @package Chill\PersonBundle\Entity
* @ORM\Entity(repositoryClass=AccompanyingPeriodParticipationRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_accompanying_period_participation") * @ORM\Table(name="chill_person_accompanying_period_participation")
*/ */
class AccompanyingPeriodParticipation class AccompanyingPeriodParticipation
@ -42,83 +41,83 @@ class AccompanyingPeriodParticipation
* @ORM\Column(type="integer") * @ORM\Column(type="integer")
*/ */
private $id; private $id;
/** /**
* @ORM\ManyToOne(targetEntity=Person::class, inversedBy="accompanyingPeriodParticipations") * @ORM\ManyToOne(targetEntity=Person::class, inversedBy="accompanyingPeriodParticipations")
* @ORM\JoinColumn(name="person_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="person_id", referencedColumnName="id", nullable=false)
*/ */
private $person; private $person;
/** /**
* @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class, inversedBy="participations", cascade={"persist"}) * @ORM\ManyToOne(targetEntity=AccompanyingPeriod::class, inversedBy="participations", cascade={"persist"})
* @ORM\JoinColumn(name="accompanyingperiod_id", referencedColumnName="id", nullable=false) * @ORM\JoinColumn(name="accompanyingperiod_id", referencedColumnName="id", nullable=false)
*/ */
private $accompanyingPeriod; private $accompanyingPeriod;
/** /**
* @ORM\Column(type="date", nullable=false) * @ORM\Column(type="date", nullable=false)
*/ */
private $startDate; private $startDate;
/** /**
* @ORM\Column(type="date", nullable=true) * @ORM\Column(type="date", nullable=true)
*/ */
private $endDate = null; private $endDate = null;
public function __construct(AccompanyingPeriod $accompanyingPeriod, Person $person) public function __construct(AccompanyingPeriod $accompanyingPeriod, Person $person)
{ {
$this->startDate = new \DateTimeImmutable('now'); $this->startDate = new \DateTimeImmutable('now');
$this->accompanyingPeriod = $accompanyingPeriod; $this->accompanyingPeriod = $accompanyingPeriod;
$this->person = $person; $this->person = $person;
} }
public function getId(): ?int public function getId(): ?int
{ {
return $this->id; return $this->id;
} }
public function getPerson(): ?Person public function getPerson(): ?Person
{ {
return $this->person; return $this->person;
} }
public function setPerson(?Person $person): self public function setPerson(?Person $person): self
{ {
$this->person = $person; $this->person = $person;
return $this; return $this;
} }
public function getAccompanyingPeriod(): ?AccompanyingPeriod public function getAccompanyingPeriod(): ?AccompanyingPeriod
{ {
return $this->accompanyingPeriod; return $this->accompanyingPeriod;
} }
public function setAccompanyingPeriod(?AccompanyingPeriod $accompanyingPeriod): self public function setAccompanyingPeriod(?AccompanyingPeriod $accompanyingPeriod): self
{ {
$this->accompanyingPeriod = $accompanyingPeriod; $this->accompanyingPeriod = $accompanyingPeriod;
return $this; return $this;
} }
public function getStartDate(): ?\DateTimeInterface public function getStartDate(): ?\DateTimeInterface
{ {
return $this->startDate; return $this->startDate;
} }
/* /*
* public function setStartDate(\DateTimeInterface $startDate): self { $this->startDate = $startDate; return $this; } * public function setStartDate(\DateTimeInterface $startDate): self { $this->startDate = $startDate; return $this; }
*/ */
public function getEndDate(): ?\DateTimeInterface public function getEndDate(): ?\DateTimeInterface
{ {
return $this->endDate; return $this->endDate;
} }
public function setEndDate(?\DateTimeInterface $endDate): self public function setEndDate(?\DateTimeInterface $endDate): self
{ {
$this->endDate = $endDate; $this->endDate = $endDate;
return $this; return $this;
} }
} }

View File

@ -25,7 +25,7 @@ use Doctrine\ORM\Mapping as ORM;
/** /**
* MaritalStatus * MaritalStatus
* *
* @ORM\Entity() * @ORM\Entity
* @ORM\Table(name="chill_person_marital_status") * @ORM\Table(name="chill_person_marital_status")
* @ORM\HasLifecycleCallbacks() * @ORM\HasLifecycleCallbacks()
*/ */
@ -48,7 +48,7 @@ class MaritalStatus
/** /**
* Get id * Get id
* *
* @return string * @return string
*/ */
public function getId() public function getId()
{ {
@ -57,7 +57,7 @@ class MaritalStatus
/** /**
* Set id * Set id
* *
* @param string $id * @param string $id
* @return MaritalStatus * @return MaritalStatus
*/ */
@ -76,17 +76,17 @@ class MaritalStatus
public function setName($name) public function setName($name)
{ {
$this->name = $name; $this->name = $name;
return $this; return $this;
} }
/** /**
* Get name * Get name
* *
* @return string array * @return string array
*/ */
public function getName() public function getName()
{ {
return $this->name; return $this->name;
} }
} }

View File

@ -38,7 +38,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
/** /**
* Person Class * Person Class
* *
* @ORM\Entity(repositoryClass="Chill\PersonBundle\Repository\PersonRepository") * @ORM\Entity
* @ORM\Table(name="chill_person_person", * @ORM\Table(name="chill_person_person",
* indexes={@ORM\Index( * indexes={@ORM\Index(
* name="person_names", * name="person_names",
@ -287,7 +287,7 @@ class Person implements HasCenterInterface
$this->open(new AccompanyingPeriod($opening)); $this->open(new AccompanyingPeriod($opening));
} }
/** /**
* This private function scan accompanyingPeriodParticipations Collection, * This private function scan accompanyingPeriodParticipations Collection,
* searching for a given AccompanyingPeriod * searching for a given AccompanyingPeriod
@ -299,10 +299,10 @@ class Person implements HasCenterInterface
if ($accompanyingPeriod === $participation->getAccompanyingPeriod()) { if ($accompanyingPeriod === $participation->getAccompanyingPeriod()) {
return $participation; return $participation;
}} }}
return null; return null;
} }
/** /**
* This public function is the same but return only true or false * This public function is the same but return only true or false
*/ */
@ -310,7 +310,7 @@ class Person implements HasCenterInterface
{ {
return ($this->participationsContainAccompanyingPeriod($accompanyingPeriod)) ? false : true; return ($this->participationsContainAccompanyingPeriod($accompanyingPeriod)) ? false : true;
} }
/** /**
* Add AccompanyingPeriodParticipation * Add AccompanyingPeriodParticipation
* *
@ -320,7 +320,7 @@ class Person implements HasCenterInterface
{ {
$participation = new AccompanyingPeriodParticipation($accompanyingPeriod, $this); $participation = new AccompanyingPeriodParticipation($accompanyingPeriod, $this);
$this->accompanyingPeriodParticipations->add($participation); $this->accompanyingPeriodParticipations->add($participation);
return $this; return $this;
} }
@ -330,7 +330,7 @@ class Person implements HasCenterInterface
public function removeAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod) : void public function removeAccompanyingPeriod(AccompanyingPeriod $accompanyingPeriod) : void
{ {
$participation = $this->participationsContainAccompanyingPeriod($accompanyingPeriod); $participation = $this->participationsContainAccompanyingPeriod($accompanyingPeriod);
if (! null === $participation) { if (! null === $participation) {
$participation->setEndDate(\DateTimeImmutable::class); $participation->setEndDate(\DateTimeImmutable::class);
$this->accompanyingPeriodParticipations->removeElement($participation); $this->accompanyingPeriodParticipations->removeElement($participation);
@ -408,7 +408,7 @@ class Person implements HasCenterInterface
} }
return $accompanyingPeriods; return $accompanyingPeriods;
} }
/** /**
* Get AccompanyingPeriodParticipations Collection * Get AccompanyingPeriodParticipations Collection
*/ */
@ -1140,12 +1140,12 @@ class Person implements HasCenterInterface
return true; return true;
} }
public function getFullnameCanonical() : string public function getFullnameCanonical() : string
{ {
return $this->fullnameCanonical; return $this->fullnameCanonical;
} }
public function setFullnameCanonical($fullnameCanonical) : Person public function setFullnameCanonical($fullnameCanonical) : Person
{ {
$this->fullnameCanonical = $fullnameCanonical; $this->fullnameCanonical = $fullnameCanonical;

View File

@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
* PersonAltName * PersonAltName
* *
* @ORM\Table(name="chill_person_alt_name") * @ORM\Table(name="chill_person_alt_name")
* @ORM\Entity(repositoryClass="Chill\PersonBundle\Repository\PersonAltNameRepository") * @ORM\Entity
*/ */
class PersonAltName class PersonAltName
{ {
@ -34,7 +34,7 @@ class PersonAltName
* @ORM\Column(name="label", type="text") * @ORM\Column(name="label", type="text")
*/ */
private $label; private $label;
/** /**
* @var Person * @var Person
* *
@ -45,7 +45,7 @@ class PersonAltName
*/ */
private $person; private $person;
/** /**
* Get id. * Get id.
* *
@ -103,7 +103,7 @@ class PersonAltName
{ {
return $this->label; return $this->label;
} }
/** /**
* @return Person * @return Person
*/ */
@ -111,7 +111,7 @@ class PersonAltName
{ {
return $this->person; return $this->person;
} }
/** /**
* @param Person|null $person * @param Person|null $person
* @return $this * @return $this
@ -119,7 +119,7 @@ class PersonAltName
public function setPerson(?Person $person = null) public function setPerson(?Person $person = null)
{ {
$this->person = $person; $this->person = $person;
return $this; return $this;
} }
} }

View File

@ -9,7 +9,7 @@ use Chill\MainBundle\Entity\User;
* PersonNotDuplicate * PersonNotDuplicate
* *
* @ORM\Table(name="chill_person_not_duplicate") * @ORM\Table(name="chill_person_not_duplicate")
* @ORM\Entity(repositoryClass="Chill\PersonBundle\Repository\PersonNotDuplicateRepository") * @ORM\Entity
*/ */
class PersonNotDuplicate class PersonNotDuplicate
{ {

View File

@ -8,7 +8,7 @@ use Doctrine\ORM\Mapping as ORM;
/** /**
* Person Phones * Person Phones
* *
* @ORM\Entity() * @ORM\Entity
* @ORM\Table(name="chill_person_phone") * @ORM\Table(name="chill_person_phone")
*/ */
class PersonPhone class PersonPhone
@ -107,7 +107,7 @@ class PersonPhone
{ {
$this->date = $date; $this->date = $date;
} }
public function isEmpty(): bool public function isEmpty(): bool
{ {
return empty($this->getDescription()) && empty($this->getPhonenumber()); return empty($this->getDescription()) && empty($this->getPhonenumber());

View File

@ -2,11 +2,10 @@
namespace Chill\PersonBundle\Entity\SocialWork; namespace Chill\PersonBundle\Entity\SocialWork;
use Chill\PersonBundle\Repository\SocialWork\EvaluationRepository;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=EvaluationRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_social_work_evaluation") * @ORM\Table(name="chill_person_social_work_evaluation")
*/ */
class Evaluation class Evaluation

View File

@ -2,13 +2,12 @@
namespace Chill\PersonBundle\Entity\SocialWork; namespace Chill\PersonBundle\Entity\SocialWork;
use Chill\PersonBundle\Repository\SocialWork\GoalRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=GoalRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_social_work_goal") * @ORM\Table(name="chill_person_social_work_goal")
*/ */
class Goal class Goal

View File

@ -4,13 +4,12 @@ namespace Chill\PersonBundle\Entity\SocialWork;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal;
use Chill\PersonBundle\Repository\SocialWork\ResultRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=ResultRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_social_work_result") * @ORM\Table(name="chill_person_social_work_result")
*/ */
class Result class Result

View File

@ -2,13 +2,12 @@
namespace Chill\PersonBundle\Entity\SocialWork; namespace Chill\PersonBundle\Entity\SocialWork;
use Chill\PersonBundle\Repository\SocialWork\SocialActionRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=SocialActionRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_social_action") * @ORM\Table(name="chill_person_social_action")
*/ */
class SocialAction class SocialAction

View File

@ -1,14 +1,12 @@
<?php <?php
namespace Chill\PersonBundle\Entity\SocialWork; namespace Chill\PersonBundle\Entity\SocialWork;
use Chill\PersonBundle\Repository\SocialWork\SocialIssueRepository;
use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM; use Doctrine\ORM\Mapping as ORM;
/** /**
* @ORM\Entity(repositoryClass=SocialIssueRepository::class) * @ORM\Entity
* @ORM\Table(name="chill_person_social_issue") * @ORM\Table(name="chill_person_social_issue")
*/ */
class SocialIssue class SocialIssue

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkGoal;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method AccompanyingPeriodWorkGoal|null find($id, $lockMode = null, $lockVersion = null) * @method AccompanyingPeriodWorkGoal|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method AccompanyingPeriodWorkGoal[] findAll() * @method AccompanyingPeriodWorkGoal[] findAll()
* @method AccompanyingPeriodWorkGoal[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method AccompanyingPeriodWorkGoal[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class AccompanyingPeriodWorkGoalRepository extends ServiceEntityRepository class AccompanyingPeriodWorkGoalRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, AccompanyingPeriodWorkGoal::class); $this->repository = $entityManager->getRepository(AccompanyingPeriodWorkGoal::class);
} }
} }

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWork;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method AccompanyingPeriodWork|null find($id, $lockMode = null, $lockVersion = null) * @method AccompanyingPeriodWork|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method AccompanyingPeriodWork[] findAll() * @method AccompanyingPeriodWork[] findAll()
* @method AccompanyingPeriodWork[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method AccompanyingPeriodWork[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class AccompanyingPeriodWorkRepository extends ServiceEntityRepository class AccompanyingPeriodWorkRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, AccompanyingPeriodWork::class); $this->repository = $entityManager->getRepository(AccompanyingPeriodWork::class);
} }
} }

View File

@ -22,6 +22,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\ClosingMotive;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
use Doctrine\ORM\Query\ResultSetMappingBuilder; use Doctrine\ORM\Query\ResultSetMappingBuilder;
@ -32,33 +34,41 @@ use Doctrine\ORM\Query\ResultSetMappingBuilder;
* *
* @package Chill\PersonBundle\Repository * @package Chill\PersonBundle\Repository
*/ */
class ClosingMotiveRepository extends EntityRepository class ClosingMotiveRepository
{ {
private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(ClosingMotive::class);
}
/** /**
* @param bool $onlyLeaf * @param bool $onlyLeaf
* @return mixed * @return mixed
*/ */
public function getActiveClosingMotive(bool $onlyLeaf = true) public function getActiveClosingMotive(bool $onlyLeaf = true)
{ {
$rsm = new ResultSetMappingBuilder($this->getEntityManager()); $rsm = new ResultSetMappingBuilder($this->repository->getEntityManager());
$rsm->addRootEntityFromClassMetadata($this->getClassName(), 'cm'); $rsm->addRootEntityFromClassMetadata($this->repository->getClassName(), 'cm');
$sql = "SELECT ".(string) $rsm." $sql = "SELECT ".(string) $rsm."
FROM chill_person_accompanying_period_closingmotive AS cm FROM chill_person_accompanying_period_closingmotive AS cm
WHERE WHERE
active IS TRUE "; active IS TRUE ";
if ($onlyLeaf) { if ($onlyLeaf) {
$sql .= "AND cm.id NOT IN ( $sql .= "AND cm.id NOT IN (
SELECT DISTINCT parent_id FROM chill_person_accompanying_period_closingmotive WHERE parent_id IS NOT NULL SELECT DISTINCT parent_id FROM chill_person_accompanying_period_closingmotive WHERE parent_id IS NOT NULL
)"; )";
} }
$sql .= " ORDER BY cm.ordering ASC"; $sql .= " ORDER BY cm.ordering ASC";
return $this->_em return $this
->repository
->getEntityManager()
->createNativeQuery($sql, $rsm) ->createNativeQuery($sql, $rsm)
->getResult() ->getResult();
;
} }
} }

View File

@ -23,8 +23,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Comment; use Chill\PersonBundle\Entity\AccompanyingPeriod\Comment;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Comment|null find($id, $lockMode = null, $lockVersion = null) * @method Comment|null find($id, $lockMode = null, $lockVersion = null)
@ -32,11 +32,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Comment[] findAll() * @method Comment[] findAll()
* @method Comment[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Comment[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class CommentRepository extends ServiceEntityRepository class CommentRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, Comment::class); $this->repository = $entityManager->getRepository(Comment::class);
} }
} }

View File

@ -23,8 +23,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Origin; use Chill\PersonBundle\Entity\AccompanyingPeriod\Origin;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Origin|null find($id, $lockMode = null, $lockVersion = null) * @method Origin|null find($id, $lockMode = null, $lockVersion = null)
@ -32,11 +32,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Origin[] findAll() * @method Origin[] findAll()
* @method Origin[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Origin[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class OriginRepository extends ServiceEntityRepository class OriginRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
{
parent::__construct($registry, Origin::class);
}
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(Origin::class);
}
} }

View File

@ -23,8 +23,8 @@
namespace Chill\PersonBundle\Repository\AccompanyingPeriod; namespace Chill\PersonBundle\Repository\AccompanyingPeriod;
use Chill\PersonBundle\Entity\AccompanyingPeriod\Resource; use Chill\PersonBundle\Entity\AccompanyingPeriod\Resource;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Resource|null find($id, $lockMode = null, $lockVersion = null) * @method Resource|null find($id, $lockMode = null, $lockVersion = null)
@ -32,11 +32,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Resource[] findAll() * @method Resource[] findAll()
* @method Resource[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Resource[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class ResourceRepository extends ServiceEntityRepository class ResourceRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
{
parent::__construct($registry, Resource::class);
}
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(Resource::class);
}
} }

View File

@ -23,8 +23,8 @@
namespace Chill\PersonBundle\Repository; namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\AccompanyingPeriodParticipation; use Chill\PersonBundle\Entity\AccompanyingPeriodParticipation;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method AccompanyingPeriodParticipation|null find($id, $lockMode = null, $lockVersion = null) * @method AccompanyingPeriodParticipation|null find($id, $lockMode = null, $lockVersion = null)
@ -32,11 +32,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method AccompanyingPeriodParticipation[] findAll() * @method AccompanyingPeriodParticipation[] findAll()
* @method AccompanyingPeriodParticipation[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method AccompanyingPeriodParticipation[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class AccompanyingPeriodParticipationRepository extends ServiceEntityRepository class AccompanyingPeriodParticipationRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, AccompanyingPeriodParticipation::class); $this->repository = $entityManager->getRepository(AccompanyingPeriodParticipation::class);
} }
} }

View File

@ -23,9 +23,8 @@
namespace Chill\PersonBundle\Repository; namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/** /**
* @method AccompanyingPeriod|null find($id, $lockMode = null, $lockVersion = null) * @method AccompanyingPeriod|null find($id, $lockMode = null, $lockVersion = null)
@ -33,10 +32,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method AccompanyingPeriod[] findAll() * @method AccompanyingPeriod[] findAll()
* @method AccompanyingPeriod[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method AccompanyingPeriod[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class AccompanyingPeriodRepository extends ServiceEntityRepository class AccompanyingPeriodRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, AccompanyingPeriod::class); $this->repository = $entityManager->getRepository(AccompanyingPeriod::class);
} }
} }

View File

@ -2,12 +2,22 @@
namespace Chill\PersonBundle\Repository; namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\PersonAltName;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
/** /**
* PersonAltNameRepository * PersonAltNameRepository
* *
* This class was generated by the Doctrine ORM. Add your own custom * This class was generated by the Doctrine ORM. Add your own custom
* repository methods below. * repository methods below.
*/ */
class PersonAltNameRepository extends \Doctrine\ORM\EntityRepository class PersonAltNameRepository
{ {
private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(PersonAltName::class);
}
} }

View File

@ -4,6 +4,7 @@ namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\PersonNotDuplicate; use Chill\PersonBundle\Entity\PersonNotDuplicate;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
/** /**
@ -11,8 +12,15 @@ use Doctrine\ORM\EntityRepository;
* *
* @package Chill\PersonBundle\Repository * @package Chill\PersonBundle\Repository
*/ */
class PersonNotDuplicateRepository extends EntityRepository class PersonNotDuplicateRepository
{ {
private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(PersonNotDuplicate::class);
}
/** /**
* @param \Chill\PersonBundle\Entity\Person $person * @param \Chill\PersonBundle\Entity\Person $person
* *
@ -20,7 +28,7 @@ class PersonNotDuplicateRepository extends EntityRepository
*/ */
public function findNotDuplicatePerson(Person $person) public function findNotDuplicatePerson(Person $person)
{ {
$qb = $this->createQueryBuilder('pnd'); $qb = $this->repository->createQueryBuilder('pnd');
$qb->select('pnd') $qb->select('pnd')
->where('pnd.person1 = :person OR pnd.person2 = :person') ->where('pnd.person1 = :person OR pnd.person2 = :person')
; ;

View File

@ -18,16 +18,25 @@
namespace Chill\PersonBundle\Repository; namespace Chill\PersonBundle\Repository;
use Chill\PersonBundle\Entity\Person;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\QueryBuilder;
/** final class PersonRepository
* Class PersonRepository
*
* @package Chill\PersonBundle\Repository
*/
class PersonRepository extends EntityRepository
{ {
private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{
$this->repository = $entityManager->getRepository(Person::class);
}
public function find($id, $lockMode = null, $lockVersion = null)
{
return $this->repository->find($id, $lockMode, $lockVersion);
}
/** /**
* @param string $phonenumber * @param string $phonenumber
* @param $centers * @param $centers
@ -38,25 +47,25 @@ class PersonRepository extends EntityRepository
* @throws \Exception * @throws \Exception
*/ */
public function findByPhone( public function findByPhone(
string $phonenumber, string $phonenumber,
$centers, $centers,
$firstResult, $firstResult,
$maxResults, $maxResults,
array $only = ['mobile', 'phone'] array $only = ['mobile', 'phone']
) { ) {
$qb = $this->createQueryBuilder('p'); $qb = $this->repository->createQueryBuilder('p');
$qb->select('p'); $qb->select('p');
$this->addByCenters($qb, $centers); $this->addByCenters($qb, $centers);
$this->addPhoneNumber($qb, $phonenumber, $only); $this->addPhoneNumber($qb, $phonenumber, $only);
$qb->setFirstResult($firstResult) $qb->setFirstResult($firstResult)
->setMaxResults($maxResults) ->setMaxResults($maxResults)
; ;
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
/** /**
* @param string $phonenumber * @param string $phonenumber
* @param $centers * @param $centers
@ -66,20 +75,20 @@ class PersonRepository extends EntityRepository
* @throws \Doctrine\ORM\NonUniqueResultException * @throws \Doctrine\ORM\NonUniqueResultException
*/ */
public function countByPhone( public function countByPhone(
string $phonenumber, string $phonenumber,
$centers, $centers,
array $only = ['mobile', 'phone'] array $only = ['mobile', 'phone']
): int ): int
{ {
$qb = $this->createQueryBuilder('p'); $qb = $this->repository->createQueryBuilder('p');
$qb->select('COUNT(p)'); $qb->select('COUNT(p)');
$this->addByCenters($qb, $centers); $this->addByCenters($qb, $centers);
$this->addPhoneNumber($qb, $phonenumber, $only); $this->addPhoneNumber($qb, $phonenumber, $only);
return $qb->getQuery()->getSingleScalarResult(); return $qb->getQuery()->getSingleScalarResult();
} }
/** /**
* @param QueryBuilder $qb * @param QueryBuilder $qb
* @param string $phonenumber * @param string $phonenumber
@ -91,23 +100,23 @@ class PersonRepository extends EntityRepository
if (count($only) === 0) { if (count($only) === 0) {
throw new \Exception("No array field to search"); throw new \Exception("No array field to search");
} }
$phonenumber = $this->parsePhoneNumber($phonenumber); $phonenumber = $this->parsePhoneNumber($phonenumber);
$orX = $qb->expr()->orX(); $orX = $qb->expr()->orX();
if (\in_array('mobile', $only)) { if (\in_array('mobile', $only)) {
$orX->add($qb->expr()->like("REPLACE(p.mobilenumber, ' ', '')", ':phonenumber')); $orX->add($qb->expr()->like("REPLACE(p.mobilenumber, ' ', '')", ':phonenumber'));
} }
if (\in_array('phone', $only)) { if (\in_array('phone', $only)) {
$orX->add($qb->expr()->like("REPLACE(p.phonenumber, ' ', '')", ':phonenumber')); $orX->add($qb->expr()->like("REPLACE(p.phonenumber, ' ', '')", ':phonenumber'));
} }
$qb->andWhere($orX); $qb->andWhere($orX);
$qb->setParameter('phonenumber', '%'.$phonenumber.'%'); $qb->setParameter('phonenumber', '%'.$phonenumber.'%');
} }
/** /**
* @param $phonenumber * @param $phonenumber
* @return string * @return string
@ -116,7 +125,7 @@ class PersonRepository extends EntityRepository
{ {
return \str_replace(' ', '', $phonenumber); return \str_replace(' ', '', $phonenumber);
} }
/** /**
* @param QueryBuilder $qb * @param QueryBuilder $qb
* @param array $centers * @param array $centers

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\SocialWork; namespace Chill\PersonBundle\Repository\SocialWork;
use Chill\PersonBundle\Entity\SocialWork\Evaluation; use Chill\PersonBundle\Entity\SocialWork\Evaluation;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Evaluation|null find($id, $lockMode = null, $lockVersion = null) * @method Evaluation|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Evaluation[] findAll() * @method Evaluation[] findAll()
* @method Evaluation[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Evaluation[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class EvaluationRepository extends ServiceEntityRepository class EvaluationRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, Evaluation::class); $this->repository = $entityManager->getRepository(Evaluation::class);
} }
} }

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\SocialWork; namespace Chill\PersonBundle\Repository\SocialWork;
use Chill\PersonBundle\Entity\SocialWork\Goal; use Chill\PersonBundle\Entity\SocialWork\Goal;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Goal|null find($id, $lockMode = null, $lockVersion = null) * @method Goal|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Goal[] findAll() * @method Goal[] findAll()
* @method Goal[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Goal[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class GoalRepository extends ServiceEntityRepository class GoalRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, Goal::class); $this->repository = $entityManager->getRepository(Goal::class);
} }
} }

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\SocialWork; namespace Chill\PersonBundle\Repository\SocialWork;
use Chill\PersonBundle\Entity\SocialWork\Result; use Chill\PersonBundle\Entity\SocialWork\Result;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method Result|null find($id, $lockMode = null, $lockVersion = null) * @method Result|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method Result[] findAll() * @method Result[] findAll()
* @method Result[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method Result[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class ResultRepository extends ServiceEntityRepository class ResultRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, Result::class); $this->repository = $entityManager->getRepository(Result::class);
} }
} }

View File

@ -3,8 +3,8 @@
namespace Chill\PersonBundle\Repository\SocialWork; namespace Chill\PersonBundle\Repository\SocialWork;
use Chill\PersonBundle\Entity\SocialWork\SocialAction; use Chill\PersonBundle\Entity\SocialWork\SocialAction;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository;
/** /**
* @method SocialAction|null find($id, $lockMode = null, $lockVersion = null) * @method SocialAction|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +12,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method SocialAction[] findAll() * @method SocialAction[] findAll()
* @method SocialAction[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method SocialAction[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class SocialActionRepository extends ServiceEntityRepository class SocialActionRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, SocialAction::class); $this->repository = $entityManager->getRepository(SocialAction::class);
} }
} }

View File

@ -4,7 +4,8 @@ namespace Chill\PersonBundle\Repository\SocialWork;
use Chill\PersonBundle\Entity\SocialWork\SocialIssue; use Chill\PersonBundle\Entity\SocialWork\SocialIssue;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository; use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository;
/** /**
* @method SocialIssue|null find($id, $lockMode = null, $lockVersion = null) * @method SocialIssue|null find($id, $lockMode = null, $lockVersion = null)
@ -12,10 +13,12 @@ use Doctrine\Persistence\ManagerRegistry;
* @method SocialIssue[] findAll() * @method SocialIssue[] findAll()
* @method SocialIssue[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null) * @method SocialIssue[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/ */
class SocialIssueRepository extends ServiceEntityRepository class SocialIssueRepository
{ {
public function __construct(ManagerRegistry $registry) private EntityRepository $repository;
public function __construct(EntityManagerInterface $entityManager)
{ {
parent::__construct($registry, SocialIssue::class); $this->repository = $entityManager->getRepository(SocialIssue::class);
} }
} }

View File

@ -22,12 +22,14 @@ use Chill\PersonBundle\Entity\PersonNotDuplicate;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Entity\Person;
use Chill\MainBundle\Security\Authorization\AuthorizationHelper; use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\PersonBundle\Repository\PersonNotDuplicateRepository;
use Chill\PersonBundle\Repository\PersonRepository;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
use Symfony\Component\Security\Core\Role\Role; use Symfony\Component\Security\Core\Role\Role;
use Chill\PersonBundle\Security\Authorization\PersonVoter; use Chill\PersonBundle\Security\Authorization\PersonVoter;
/** /**
* *
* *
* @author Julien Fastré <julien.fastre@champs-libres.coop> * @author Julien Fastré <julien.fastre@champs-libres.coop>
*/ */
@ -41,20 +43,20 @@ class SimilarPersonMatcher
* @var EntityManagerInterface * @var EntityManagerInterface
*/ */
protected $em; protected $em;
/** /**
* @var AuthorizationHelper * @var AuthorizationHelper
*/ */
protected $authorizationHelper; protected $authorizationHelper;
/** /**
* @var TokenStorageInterface * @var TokenStorageInterface
*/ */
protected $tokenStorage; protected $tokenStorage;
public function __construct( public function __construct(
EntityManagerInterface $em, EntityManagerInterface $em,
AuthorizationHelper $authorizationHelper, AuthorizationHelper $authorizationHelper,
TokenStorageInterface $tokenStorage TokenStorageInterface $tokenStorage
) { ) {
$this->em = $em; $this->em = $em;
@ -62,7 +64,7 @@ class SimilarPersonMatcher
$this->tokenStorage = $tokenStorage; $this->tokenStorage = $tokenStorage;
} }
public function matchPerson(Person $person, $precision = 0.15, $orderBy = self::SIMILAR_SEARCH_ORDER_BY_SIMILARITY) public function matchPerson(Person $person, PersonNotDuplicateRepository $personNotDuplicateRepository, $precision = 0.15, $orderBy = self::SIMILAR_SEARCH_ORDER_BY_SIMILARITY)
{ {
$centers = $this->authorizationHelper->getReachableCenters( $centers = $this->authorizationHelper->getReachableCenters(
$this->tokenStorage->getToken()->getUser(), $this->tokenStorage->getToken()->getUser(),
@ -77,8 +79,7 @@ class SimilarPersonMatcher
. ' AND p.id != :personId ' . ' AND p.id != :personId '
; ;
$notDuplicatePersons = $this->em->getRepository(PersonNotDuplicate::class) $notDuplicatePersons = $personNotDuplicateRepository->findNotDuplicatePerson($person);
->findNotDuplicatePerson($person);
if (count($notDuplicatePersons)) { if (count($notDuplicatePersons)) {
$dql .= ' AND p.id not in (:notDuplicatePersons)'; $dql .= ' AND p.id not in (:notDuplicatePersons)';

View File

@ -30,14 +30,15 @@ use Chill\PersonBundle\Security\Authorization\PersonVoter;
use Symfony\Component\Security\Core\Role\Role; use Symfony\Component\Security\Core\Role\Role;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Chill\CustomFieldsBundle\Entity\CustomField; use Chill\CustomFieldsBundle\Entity\CustomField;
use Chill\PersonBundle\Repository\PersonRepository;
use Twig\Environment; use Twig\Environment;
/** /**
* add a widget with person list. * add a widget with person list.
* *
* The configuration is defined by `PersonListWidgetFactory` * The configuration is defined by `PersonListWidgetFactory`
* *
* If the options 'custom_fields' is used, the custom fields entity will be * If the options 'custom_fields' is used, the custom fields entity will be
* queried from the db and transmitted to the view under the `customFields` variable. * queried from the db and transmitted to the view under the `customFields` variable.
*/ */
class PersonListWidget implements WidgetInterface class PersonListWidget implements WidgetInterface
@ -45,38 +46,38 @@ class PersonListWidget implements WidgetInterface
/** /**
* Repository for persons * Repository for persons
* *
* @var EntityRepository * @var PersonRepository
*/ */
protected $personRepository; protected $personRepository;
/** /**
* The entity manager * The entity manager
* *
* @var EntityManager * @var EntityManager
*/ */
protected $entityManager; protected $entityManager;
/** /**
* the authorization helper * the authorization helper
* *
* @var AuthorizationHelper; * @var AuthorizationHelper;
*/ */
protected $authorizationHelper; protected $authorizationHelper;
/** /**
* *
* @var TokenStorage * @var TokenStorage
*/ */
protected $tokenStorage; protected $tokenStorage;
/** /**
* *
* @var UserInterface * @var UserInterface
*/ */
protected $user; protected $user;
public function __construct( public function __construct(
EntityRepository $personRepostory, PersonRepository $personRepostory,
EntityManager $em, EntityManager $em,
AuthorizationHelper $authorizationHelper, AuthorizationHelper $authorizationHelper,
TokenStorage $tokenStorage TokenStorage $tokenStorage
@ -88,26 +89,26 @@ class PersonListWidget implements WidgetInterface
} }
/** /**
* *
* @param type $place * @param type $place
* @param array $context * @param array $context
* @param array $config * @param array $config
* @return string * @return string
*/ */
public function render(Environment $env, $place, array $context, array $config) public function render(Environment $env, $place, array $context, array $config)
{ {
$numberOfItems = $config['number_of_items'] ?? 20; $numberOfItems = $config['number_of_items'] ?? 20;
$qb = $this->personRepository $qb = $this->personRepository
->createQueryBuilder('person'); ->createQueryBuilder('person');
// show only the person from the authorized centers // show only the person from the authorized centers
$and = $qb->expr()->andX(); $and = $qb->expr()->andX();
$centers = $this->authorizationHelper $centers = $this->authorizationHelper
->getReachableCenters($this->getUser(), new Role(PersonVoter::SEE)); ->getReachableCenters($this->getUser(), new Role(PersonVoter::SEE));
$and->add($qb->expr()->in('person.center', ':centers')); $and->add($qb->expr()->in('person.center', ':centers'));
$qb->setParameter('centers', $centers); $qb->setParameter('centers', $centers);
// add the "only active" query // add the "only active" query
if (\array_key_exists('only_active', $config) && $config['only_active'] === true) { if (\array_key_exists('only_active', $config) && $config['only_active'] === true) {
@ -126,34 +127,34 @@ class PersonListWidget implements WidgetInterface
$qb->setParameter('now', new \DateTime(), Type::DATE); $qb->setParameter('now', new \DateTime(), Type::DATE);
} }
if (\array_key_exists('filtering_class', $config) && $config['filtering_class'] !== NULL) { if (\array_key_exists('filtering_class', $config) && $config['filtering_class'] !== NULL) {
$filteringClass = new $config['filtering_class']; $filteringClass = new $config['filtering_class'];
if ( ! $filteringClass instanceof PersonListWidget\PersonFilteringInterface) { if ( ! $filteringClass instanceof PersonListWidget\PersonFilteringInterface) {
throw new \UnexpectedValueException(sprintf("the class %s does not " throw new \UnexpectedValueException(sprintf("the class %s does not "
. "implements %s", $config['filtering_class'], . "implements %s", $config['filtering_class'],
PersonListWidget\PersonFilteringInterface::class)); PersonListWidget\PersonFilteringInterface::class));
} }
$ids = $filteringClass->getPersonIds($this->entityManager, $ids = $filteringClass->getPersonIds($this->entityManager,
$this->getUser()); $this->getUser());
$in = (new Expr())->in('person.id', ':ids'); $in = (new Expr())->in('person.id', ':ids');
$and->add($in); $and->add($in);
$qb->setParameter('ids', $ids); $qb->setParameter('ids', $ids);
} }
// adding the where clause to the query // adding the where clause to the query
$qb->where($and); $qb->where($and);
// ordering the query by lastname, firstname // ordering the query by lastname, firstname
$qb->addOrderBy('person.lastName', 'ASC') $qb->addOrderBy('person.lastName', 'ASC')
->addOrderBy('person.firstName', 'ASC'); ->addOrderBy('person.firstName', 'ASC');
$qb->setFirstResult(0)->setMaxResults($numberOfItems); $qb->setFirstResult(0)->setMaxResults($numberOfItems);
$persons = $qb->getQuery()->getResult(); $persons = $qb->getQuery()->getResult();
// get some custom field when the view is overriden and we want to // get some custom field when the view is overriden and we want to
// show some custom field in the overriden view. // show some custom field in the overriden view.
$cfields = array(); $cfields = array();
if (isset($config['custom_fields'])) { if (isset($config['custom_fields'])) {
@ -166,39 +167,39 @@ class PersonListWidget implements WidgetInterface
$cfields[$cf->getSlug()] = $cf; $cfields[$cf->getSlug()] = $cf;
} }
} }
} }
return $env->render( return $env->render(
'ChillPersonBundle:Widget:homepage_person_list.html.twig', 'ChillPersonBundle:Widget:homepage_person_list.html.twig',
array( array(
'persons' => $persons, 'persons' => $persons,
'customFields' => $cfields 'customFields' => $cfields
) )
); );
} }
/** /**
* *
* @return UserInterface * @return UserInterface
* @throws \RuntimeException * @throws \RuntimeException
*/ */
private function getUser() private function getUser()
{ {
$token = $this->tokenStorage->getToken(); $token = $this->tokenStorage->getToken();
if ($token === null) { if ($token === null) {
throw new \RuntimeException("the token should not be null"); throw new \RuntimeException("the token should not be null");
} }
$user = $token->getUser(); $user = $token->getUser();
if (!$user instanceof UserInterface || $user == null) { if (!$user instanceof UserInterface || $user == null) {
throw new \RuntimeException("the user should implement UserInterface. " throw new \RuntimeException("the user should implement UserInterface. "
. "Are you logged in ?"); . "Are you logged in ?");
} }
return $user; return $user;
} }
} }