Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
KartenRepository
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 search
0.00% covered (danger)
0.00%
0 / 15
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Repository\Karten;
4
5use Doctrine\Common\Collections\Collection;
6use Doctrine\Common\Collections\Criteria;
7use Doctrine\Common\Collections\Order;
8use Olz\Entity\Karten\Karte;
9use Olz\Repository\Common\OlzRepository;
10
11/**
12 * @extends OlzRepository<Karte>
13 */
14class KartenRepository extends OlzRepository {
15    /**
16     * @param string[] $terms
17     *
18     * @return Collection<int, Karte>&iterable<Karte>
19     */
20    public function search(array $terms): Collection {
21        $criteria = Criteria::create()
22            ->where(Criteria::expr()->andX(
23                Criteria::expr()->eq('on_off', 1),
24                ...array_map(fn ($term) => Criteria::expr()->orX(
25                    Criteria::expr()->contains('name', $term),
26                    Criteria::expr()->contains('ort', $term),
27                ), $terms),
28            ))
29            ->orderBy([
30                'jahr' => Order::Descending,
31            ])
32            ->setFirstResult(0)
33            ->setMaxResults(1000000)
34        ;
35        return $this->matching($criteria);
36    }
37}