Completed
Branch full-rewrite (4754d3)
by Thibaud
03:13
created

FileAdapter   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 25
wmc 1
lcom 0
cbo 6
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A registerProtocols() 0 16 1
1
<?php
2
3
namespace Alchemy\Zippy\Adapter;
4
5
use Alchemy\Zippy\Package\IteratorResolver\ProtocolBasedIteratorResolver;
6
use Alchemy\Zippy\Package\PackagedResource;
7
use Alchemy\Zippy\Resource\PathUtil;
8
use Alchemy\Zippy\Resource\ReaderResolver\ProtocolBasedReaderResolver;
9
use Alchemy\Zippy\Resource\Writer\StreamWriter;
10
use Alchemy\Zippy\Resource\WriterResolver\ProtocolBasedWriterResolver;
11
12
class FileAdapter implements Adapter
13
{
14
15
    /**
16
     * @param ProtocolBasedIteratorResolver $iteratorResolver
17
     * @param ProtocolBasedReaderResolver $readerResolver
18
     * @param ProtocolBasedWriterResolver $writerResolver
19
     */
20
    public function registerProtocols(
21
        ProtocolBasedIteratorResolver $iteratorResolver,
22
        ProtocolBasedReaderResolver $readerResolver,
23
        ProtocolBasedWriterResolver $writerResolver
24
    ) {
25
26
        $writerResolver->addWriter(new StreamWriter(), 'file');
27
28
        $iteratorResolver->addFactory('file', function (PackagedResource $container) use ($iteratorResolver) {
29
            $extension = PathUtil::extractExtension($container->getRelativeUri()->getResource());
30
            $factory = $iteratorResolver->getFactory($extension);
31
32
            return $factory($container);
33
        });
34
35
    }
36
}
37