Passed
Push — master ( 80fed1...32ef61 )
by Peter
09:46
created

UserBootstrapper   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 25
c 1
b 0
f 0
dl 0
loc 42
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A registerBindings() 0 27 1
A getBindings() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Admin\Bootstrappers\Http\Controllers\Form;
6
7
use AbterPhp\Admin\Form\Factory\User as FormFactory;
8
use AbterPhp\Admin\Http\Controllers\Admin\Form\User;
9
use AbterPhp\Admin\Orm\UserRepo as Repo;
10
use AbterPhp\Framework\Assets\AssetManager;
11
use AbterPhp\Framework\Constant\Env;
12
use AbterPhp\Framework\I18n\ITranslator;
13
use AbterPhp\Framework\Session\FlashService;
14
use Opulence\Events\Dispatchers\IEventDispatcher;
15
use Opulence\Ioc\Bootstrappers\Bootstrapper;
16
use Opulence\Ioc\Bootstrappers\ILazyBootstrapper;
17
use Opulence\Ioc\IContainer;
18
use Opulence\Routing\Urls\UrlGenerator;
19
use Opulence\Sessions\ISession;
20
use Psr\Log\LoggerInterface;
21
22
class UserBootstrapper extends Bootstrapper implements ILazyBootstrapper
23
{
24
    /**
25
     * @return array
26
     */
27
    public function getBindings(): array
28
    {
29
        return [
30
            User::class,
31
        ];
32
    }
33
34
    /**
35
     * @param IContainer $container
36
     */
37
    public function registerBindings(IContainer $container)
38
    {
39
        $flashService    = $container->resolve(FlashService::class);
40
        $translator      = $container->resolve(ITranslator::class);
41
        $urlGenerator    = $container->resolve(UrlGenerator::class);
42
        $logger          = $container->resolve(LoggerInterface::class);
43
        $repo            = $container->resolve(Repo::class);
44
        $session         = $container->resolve(ISession::class);
45
        $formFactory     = $container->resolve(FormFactory::class);
46
        $eventDispatcher = $container->resolve(IEventDispatcher::class);
47
        $assets          = $container->resolve(AssetManager::class);
48
        $frontendSalt    = getenv(Env::CRYPTO_FRONTEND_SALT);
49
50
        $userController = new User(
51
            $flashService,
52
            $translator,
53
            $urlGenerator,
54
            $logger,
55
            $repo,
56
            $session,
57
            $formFactory,
58
            $eventDispatcher,
59
            $assets,
60
            $frontendSalt
61
        );
62
63
        $container->bindInstance(User::class, $userController);
64
    }
65
}
66