entityManager = $entityManager; $this->container = $container; } /** * @return array [description] */ public function list(): array { return $this->entityManager ->createQueryBuilder() ->select('t') ->from(Twig::class, 't') ->where('t.deletedAt IS NULL') ->getQuery() ->getResult(); } /** * @param int $id [description] * * @return Twig|null [description] */ public function findById(int $id): ?Twig { return $this->entityManager ->createQueryBuilder() ->select('t') ->from(Twig::class, 't') ->where('t.id = :id') ->setParameter('id', $id) ->getQuery() ->getOneOrNullResult(); } /** * @param Twig $twig * * @return Twig */ public function save(Twig $twig): Twig { $this->entityManager->persist($twig); $this->entityManager->flush(); return $twig; } /** * @param Twig $twig * * @return bool */ public function delete(Twig $twig): bool { $this->entityManager->remove($twig); $this->entityManager->flush(); return true; } /** * @param string $twigName [description] * * @return Twig [description] */ public function findByName(string $twigName): ?Twig { return $this->entityManager->createQueryBuilder() ->select('t') ->from(Twig::class, 't') ->where('t.name = :twigName') ->setParameter('twigName', $twigName) ->getQuery() ->getOneOrNullResult(); } /** * @param string $twigName [description] * * @return Twig [description] */ public function findByNameAndDifferentId(string $twigName, int $twigId): ?Twig { return $this->entityManager->createQueryBuilder() ->select('t') ->from(Twig::class, 't') ->where('t.name = :twigName') ->andWhere('t.id != :twigId') ->andWhere('t.deletedAt is null') ->setParameters(['twigName'=> $twigName, 'twigId' => $twigId]) ->getQuery() ->getOneOrNullResult(); } /** * @param Twig $twig [description] * * @return string|array [description] */ public function diff(Twig $twig) { $uow = $this->entityManager->getUnitOfWork(); $uow->computeChangeSets(); $result = $uow->getEntityChangeSet($twig); return $result; } }