ProfileBootstrapper::getBindings()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 2
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Admin\Bootstrappers\Http\Controllers\Form;
6
7
use AbterPhp\Admin\Form\Factory\Profile as FormFactory;
8
use AbterPhp\Admin\Http\Controllers\Admin\Form\Profile;
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\Ioc\IocException;
19
use Opulence\Routing\Urls\UrlGenerator;
20
use Opulence\Sessions\ISession;
21
use Psr\Log\LoggerInterface;
22
23
class ProfileBootstrapper extends Bootstrapper implements ILazyBootstrapper
24
{
25
    /**
26
     * @return string[]
27
     */
28
    public function getBindings(): array
29
    {
30
        return [
31
            Profile::class,
32
        ];
33
    }
34
35
    /**
36
     * @param IContainer $container
37
     *
38
     * @throws IocException
39
     */
40
    public function registerBindings(IContainer $container)
41
    {
42
        $flashService    = $container->resolve(FlashService::class);
43
        $logger          = $container->resolve(LoggerInterface::class);
44
        $translator      = $container->resolve(ITranslator::class);
45
        $urlGenerator    = $container->resolve(UrlGenerator::class);
46
        $repo            = $container->resolve(Repo::class);
47
        $session         = $container->resolve(ISession::class);
48
        $formFactory     = $container->resolve(FormFactory::class);
49
        $eventDispatcher = $container->resolve(IEventDispatcher::class);
50
        $assets          = $container->resolve(AssetManager::class);
51
        $frontendSalt    = getenv(Env::CRYPTO_FRONTEND_SALT);
52
53
        $profileController = new Profile(
54
            $flashService,
55
            $logger,
56
            $translator,
57
            $urlGenerator,
58
            $repo,
59
            $session,
60
            $formFactory,
61
            $eventDispatcher,
62
            $assets,
63
            $frontendSalt
64
        );
65
66
        $container->bindInstance(Profile::class, $profileController);
67
    }
68
}
69