FlystemProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 2
Metric Value
wmc 3
lcom 1
cbo 4
dl 0
loc 47
ccs 5
cts 5
cp 1
rs 10
c 2
b 0
f 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getDefinitions() 0 19 2
1
<?php
2
3
namespace Mosaic\Filesystem\Providers;
4
5
use Interop\Container\Definition\DefinitionProviderInterface;
6
use League\Flysystem\Filesystem as Flystem;
7
use League\Flysystem\MountManager;
8
use Mosaic\Filesystem\Adapters\Flysystem\DiskResolverCollection;
9
use Mosaic\Filesystem\Adapters\Flysystem\Filesystem;
10
use Mosaic\Filesystem\Filesystem as FilesystemInterface;
11
12
class FlystemProvider implements DefinitionProviderInterface
13
{
14
    /**
15
     * @var DiskResolverCollection
16
     */
17
    private $collection;
18
19
    /**
20
     * @param DiskResolverCollection $collection
21
     */
22 3
    public function __construct(DiskResolverCollection $collection)
23
    {
24 3
        $this->collection = $collection;
25 3
    }
26
27
    /**
28
     * Returns the definition to register in the container.
29
     *
30
     * Definitions must be indexed by their entry ID. For example:
31
     *
32
     *     return [
33
     *         'logger' => ...
34
     *         'mailer' => ...
35
     *     ];
36
     *
37
     * @return array
38
     */
39
    public function getDefinitions()
40
    {
41
        return [
42 1
            FilesystemInterface::class => function () {
43
44
                $manager = new MountManager();
45
46
                foreach ($this->collection->all() as $name => $adapter) {
47
                    $manager->mountFilesystem($name, new Flystem(
48
                        $adapter()
49
                    ));
50
                }
51
52
                return new Filesystem(
53
                    $manager
54
                );
55 1
            }
56
        ];
57
    }
58
}
59