Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 12
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
SnippetRepository
0.00% covered (danger)
0.00%
0 / 12
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 / 12
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Repository\Snippets;
4
5use Doctrine\Common\Collections\Collection;
6use Doctrine\Common\Collections\Criteria;
7use Doctrine\Common\Collections\Order;
8use Olz\Entity\Snippets\Snippet;
9use Olz\Repository\Common\OlzRepository;
10
11/**
12 * @extends OlzRepository<Snippet>
13 */
14class SnippetRepository extends OlzRepository {
15    /**
16     * @param string[] $terms
17     *
18     * @return Collection<int, Snippet>&iterable<Snippet>
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()->contains('text', $term), $terms),
25            ))
26            ->orderBy([
27                'last_modified_at' => Order::Descending,
28            ])
29            ->setFirstResult(0)
30            ->setMaxResults(1000000)
31        ;
32        return $this->matching($criteria);
33    }
34}