From c17ffb7063fbc1e21043042b176cca206a06231c Mon Sep 17 00:00:00 2001 From: Tom Udding Date: Fri, 28 Apr 2023 15:46:29 +0200 Subject: [PATCH] Fix PHPStan Apparently you cannot use `::class` in a `from` when using alternative namespaces in the `EntityManager`. --- module/Report/src/Mapper/Member.php | 22 +++++++--------------- phpstan/phpstan-baseline.neon | 1 + 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/module/Report/src/Mapper/Member.php b/module/Report/src/Mapper/Member.php index 31f9510d8..de475ee27 100644 --- a/module/Report/src/Mapper/Member.php +++ b/module/Report/src/Mapper/Member.php @@ -8,7 +8,7 @@ use Doctrine\ORM\EntityRepository; use Doctrine\ORM\Query\Expr\Join; use Report\Model\Member as MemberModel; -use Report\Model\OrganMember as OrganMemberModel; +use Report\Model\OrganMember; class Member { @@ -23,11 +23,8 @@ public function __construct(protected readonly EntityManager $em) */ public function findSimple(int $lidnr): ?MemberModel { - $qb = $this->em->createQueryBuilder(); - - $qb->select('m') - ->from(MemberModel::class, 'm') - ->where('m.lidnr = :lidnr') + $qb = $this->getRepository()->createQueryBuilder('m'); + $qb->where('m.lidnr = :lidnr') ->orderBy('m.lidnr', 'DESC'); $qb->setParameter(':lidnr', $lidnr); @@ -42,11 +39,9 @@ public function findSimple(int $lidnr): ?MemberModel */ public function findNormal(): array { - $qb = $this->em->createQueryBuilder(); + $qb = $this->getRepository()->createQueryBuilder('m'); - $qb->select('m') - ->from(MemberModel::class, 'm') - ->where('m.expiration >= CURRENT_TIMESTAMP()') + $qb->where('m.expiration >= CURRENT_TIMESTAMP()') ->andWhere('m.hidden = false') ->andWhere('m.deleted = false') ->setMaxResults(32) @@ -62,11 +57,8 @@ public function findNormal(): array */ public function findActive(bool $includeOrganMembership = false): array { - $qb = $this->em->createQueryBuilder(); - - $qb->select('m') - ->from(MemberModel::class, 'm') - ->leftJoin(OrganMemberModel::class, 'om', Join::WITH, 'm.lidnr = om.member') + $qb = $this->getRepository()->createQueryBuilder('m'); + $qb->leftJoin(OrganMember::class, 'om', Join::WITH, 'm.lidnr = om.member') ->where('om.dischargeDate IS NULL OR om.dischargeDate > CURRENT_DATE()') ->andWhere('om.installDate < CURRENT_DATE()') ->andWhere('om.function <> \'\'') diff --git a/phpstan/phpstan-baseline.neon b/phpstan/phpstan-baseline.neon index 9298dafd0..c7aae697f 100644 --- a/phpstan/phpstan-baseline.neon +++ b/phpstan/phpstan-baseline.neon @@ -8,4 +8,5 @@ parameters: count: 1 path: ../module/Report/src/Service/Meeting.php - '#Property User\\Model\\ApiPrincipal\:\:\$permissions type mapping mismatch\: backing type string of enum User\\Model\\Enums\\ApiPermissions does not match database type array.$#' + - '#Property User\\Model\\ApiPrincipal\:\:\$permissions type mapping mismatch\: database can contain User\\Model\\Enums\\ApiPermissions\|null but property expects array\.$#' - '#Property User\\Model\\ApiPrincipal\:\:\$permissions type mapping mismatch\: property can contain array but database expects User\\Model\\Enums\\ApiPermissions\|null.$#'