PaginationORMAdapter::getCounter()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace Pagination\Adapter;
4
5
use Doctrine\ORM\QueryBuilder;
6
use Pagination\Interfaces\IAdapterInterface;
7
8
class PaginationORMAdapter implements IAdapterInterface
9
{
10
11
    /**
12
     * @param QueryBuilder $query
13
     *
14
     * @return int
15
     */
16
    public function getCounter($query)
17
    {
18
        $clone = clone $query;
19
20
        return $clone->select('count(' . $clone->getRootAliases()[0] . ')')->getQuery()->getSingleScalarResult();
21
    }
22
23
    /**
24
     * @param QueryBuilder $query
25
     * @param int $current
26
     * @param int $limit
27
     *
28
     * @return QueryBuilder
29
     */
30
    public function getItems($query, $current, $limit)
31
    {
32
        $start = $current * $limit - $limit;
33
34
        return $query->setFirstResult($start)->setMaxResults($limit)->getQuery()->getResult();
35
    }
36
37
}
38