These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | namespace Hateoas\Representation\Factory; |
||
4 | |||
5 | use Hateoas\Configuration\Route; |
||
6 | use Hateoas\Representation\CollectionRepresentation; |
||
7 | use Hateoas\Representation\PaginatedRepresentation; |
||
8 | use Pagerfanta\Pagerfanta; |
||
9 | |||
10 | /** |
||
11 | * @author Adrien Brault <[email protected]> |
||
12 | */ |
||
13 | class PagerfantaFactory |
||
14 | { |
||
15 | /** |
||
16 | * @var string |
||
17 | */ |
||
18 | private $pageParameterName; |
||
19 | |||
20 | /** |
||
21 | * @var string |
||
22 | */ |
||
23 | private $limitParameterName; |
||
24 | |||
25 | /** |
||
26 | * @param string $pageParameterName |
||
27 | * @param string $limitParameterName |
||
28 | */ |
||
29 | public function __construct($pageParameterName = null, $limitParameterName = null) |
||
30 | { |
||
31 | $this->pageParameterName = $pageParameterName; |
||
32 | $this->limitParameterName = $limitParameterName; |
||
33 | } |
||
34 | |||
35 | /** |
||
36 | * @param Pagerfanta $pager The pager |
||
37 | * @param Route $route The collection's route |
||
38 | * @param mixed $inline Most of the time, a custom `CollectionRepresentation` instance |
||
39 | * |
||
40 | * @return PaginatedRepresentation |
||
41 | */ |
||
42 | public function createRepresentation(Pagerfanta $pager, Route $route, $inline = null) |
||
43 | { |
||
44 | if (null === $inline) { |
||
45 | $inline = new CollectionRepresentation($pager->getCurrentPageResults()); |
||
46 | } |
||
47 | |||
48 | return new PaginatedRepresentation( |
||
49 | $inline, |
||
50 | $route->getName(), |
||
51 | $route->getParameters(), |
||
0 ignored issues
–
show
|
|||
52 | $pager->getCurrentPage(), |
||
53 | $pager->getMaxPerPage(), |
||
54 | $pager->getNbPages(), |
||
55 | $this->getPageParameterName(), |
||
56 | $this->getLimitParameterName(), |
||
57 | $route->isAbsolute(), |
||
58 | $pager->getNbResults() |
||
59 | ); |
||
60 | } |
||
61 | |||
62 | /** |
||
63 | * @return string |
||
64 | */ |
||
65 | public function getPageParameterName() |
||
66 | { |
||
67 | return $this->pageParameterName; |
||
68 | } |
||
69 | |||
70 | /** |
||
71 | * @return string |
||
72 | */ |
||
73 | public function getLimitParameterName() |
||
74 | { |
||
75 | return $this->limitParameterName; |
||
76 | } |
||
77 | } |
||
78 |
This check looks at variables that are passed out again to other methods.
If the outgoing method call has stricter type requirements than the method itself, an issue is raised.
An additional type check may prevent trouble.