Passed
Push — master ( 57b6aa...b0f585 )
by Zlatin
03:42
created

PaginationServiceProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Test Coverage

Coverage 81.82%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
lcom 0
cbo 5
dl 0
loc 49
ccs 27
cts 33
cp 0.8182
rs 10
c 1
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B register() 0 46 3
1
<?php
2
3
namespace Pagination;
4
5
use Pimple\Container;
6
use Pimple\ServiceProviderInterface;
7
use Silex\Application;
8
use Symfony\Component\Translation\Translator;
9
10
class PaginationServiceProvider implements ServiceProviderInterface
11
{
12 5
    public function register(Container $app)
13
    {
14 5
        $app['paginator.options'] = [
15 5
            'offset_page'    => 2,
16 5
            'page_param'     => 'page',
17 5
            'items_per_page' => 10,
18 5
            'hide_prev_next' => true,
19
        ];
20
21
        $app['paginator'] = $app->factory(function ($app) {
22 3
            $app['paginator.options'] = array_replace([
23 3
                'offset_page'    => 2,
24 3
                'page_param'     => 'page',
25 3
                'items_per_page' => 10,
26 3
                'hide_prev_next' => true,
27 3
                    ], $app['paginator.options']);
28
29 3
            return new \Pagination\Util\Paginator($app);
0 ignored issues
show
Documentation introduced by
$app is of type array<string,array<strin...eger|string|boolean>"}>, but the function expects a object<Silex\Application>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
30 5
        });
31
32 5
        if (!$app->offsetExists('twig')) {
33 5
            $app->register(new \Silex\Provider\TwigServiceProvider());
34 5
        }
35
36 5
        if (!$app->offsetExists('translator')) {
37 5
            $app->register(new \Silex\Provider\TranslationServiceProvider());
38 5
        }
39
40
        $app['twig'] = $app->extend('twig', function (\Twig_Environment $twig) {
41
            $twig->addExtension(new Twig\TwigExtension());
42
43
            return $twig;
44 5
        });
45
46 5
        $app['twig.path'] = array_merge_recursive($app['twig.path'], [
47 5
            __DIR__.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'views',
48 5
        ]);
49
50 5
        $app['translator'] = $app->extend('translator', function (Translator $translator, Application $app) {
0 ignored issues
show
Unused Code introduced by
The parameter $app is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
51
            $translationDirectory = __DIR__.DIRECTORY_SEPARATOR.'Resources'.DIRECTORY_SEPARATOR.'translations';
52
            $translator->addResource('yaml', $translationDirectory.DIRECTORY_SEPARATOR.'messages.bg.yml', 'bg');
53
            $translator->addResource('yaml', $translationDirectory.DIRECTORY_SEPARATOR.'messages.en.yml', 'en');
54
55
            return $translator;
56 5
        });
57 5
    }
58
}
59