Passed
Push — main ( a04a11...ed3749 )
by Dimitri
05:24
created

Providers   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 27
dl 0
loc 46
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A interfaces() 0 12 1
A definitions() 0 5 1
A classes() 0 15 1
1
<?php
2
3
/**
4
 * This file is part of Blitz PHP framework.
5
 *
6
 * (c) 2022 Dimitri Sitchet Tomkeu <[email protected]>
7
 *
8
 * For the full copyright and license information, please view
9
 * the LICENSE file that was distributed with this source code.
10
 */
11
12
namespace BlitzPHP\Config;
13
14
use BlitzPHP\Container\AbstractProvider;
15
16
class Providers extends AbstractProvider
17
{
18
    public static function definitions(): array
19
    {
20
        return array_merge(
21
            self::interfaces(),
22
            self::classes(),
23
        );
24
    }
25
26
    /**
27
     * Enregistre les interfaces
28
     */
29
    private static function interfaces(): array
30
    {
31
        return [
32
            \BlitzPHP\Contracts\Event\EventManagerInterface::class     => fn () => service('event'),
33
            \BlitzPHP\Contracts\Router\RouteCollectionInterface::class => fn () => service('routes'),
34
            \BlitzPHP\Contracts\Session\SessionInterface::class        => fn () => service('session'),
35
            \BlitzPHP\Mail\MailerInterface::class                      => fn () => service('mail'),
36
            \Psr\Container\ContainerInterface::class                   => fn () => service('container'),
37
            \Psr\Http\Message\ResponseInterface::class                 => fn () => service('response'),
38
            \Psr\Http\Message\ServerRequestInterface::class            => fn () => service('request'),
39
            \Psr\Log\LoggerInterface::class                            => fn () => service('logger'),
40
            \Psr\SimpleCache\CacheInterface::class                     => fn () => service('cache'),
41
        ];
42
    }
43
44
    /**
45
     * Enregistre les classes concretes definies comme services
46
     */
47
    private static function classes(): array
48
    {
49
        return [
50
            \BlitzPHP\Autoloader\Autoloader::class        => fn () => service('autoloader'),
51
            \BlitzPHP\Cache\Cache::class                  => fn () => service('cache'),
52
            \BlitzPHP\Translator\Translate::class         => fn () => service('translator'),
53
            \BlitzPHP\Autoloader\Locator::class           => fn () => service('locator'),
54
            \BlitzPHP\Mail\Mail::class                    => fn () => service('mail'),
55
            \BlitzPHP\Http\Negotiator::class              => fn () => service('negotiator'),
56
            \BlitzPHP\Http\Redirection::class             => fn () => service('redirection'),
57
            \BlitzPHP\Cache\ResponseCache::class          => fn () => service('responsecache'),
58
            \BlitzPHP\Router\RouteCollection::class       => fn () => service('routes'),
59
            \BlitzPHP\Router\Router::class                => fn () => service('router'),
60
            \BlitzPHP\Session\Store::class                => fn () => service('session'),
61
            \BlitzPHP\Filesystem\FilesystemManager::class => fn () => service('storage'),
62
        ];
63
    }
64
}
65