SpreadsheetParser   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 46
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A open() 0 4 1
A getSpreadsheetLoader() 0 9 2
A configureLoaders() 0 7 1
1
<?php
2
3
namespace Akeneo\Component\SpreadsheetParser;
4
5
/**
6
 * Entry point for the SpreadsheetParser component
7
 *
8
 * @author    Antoine Guigan <[email protected]>
9
 * @copyright 2014 Akeneo SAS (http://www.akeneo.com)
10
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
11
 */
12
class SpreadsheetParser
13
{
14
    /**
15
     * @var SpreadsheetLoader
16
     */
17
    protected static $spreadsheetLoader;
18
19
    /**
20
     * Opens a spreadsheet
21
     *
22
     * @param string      $path
23
     * @param string|null $type
24
     *
25
     * @return SpreadsheetInterface
26
     */
27
    public static function open($path, $type = null)
28
    {
29
        return static::getSpreadsheetLoader()->open($path, $type);
30
    }
31
32
    /**
33
     * Returns the spreadsheet loader
34
     *
35
     * @return SpreadsheetLoaderInterface
36
     */
37
    public static function getSpreadsheetLoader()
38
    {
39
        if (!isset(static::$spreadsheetLoader)) {
40
            static::$spreadsheetLoader = new SpreadsheetLoader();
41
            static::configureLoaders();
42
        }
43
44
        return static::$spreadsheetLoader;
45
    }
46
47
    /**
48
     * Configure the loaders
49
     */
50
    protected static function configureLoaders()
51
    {
52
        static::$spreadsheetLoader
53
            ->addLoader(Xlsx\XlsxParser::FORMAT_NAME, Xlsx\XlsxParser::getSpreadsheetLoader())
54
            ->addLoader(Xlsx\XlsxParser::MACRO_FORMAT_NAME, Xlsx\XlsxParser::getSpreadsheetLoader())
55
            ->addLoader(Csv\CsvParser::FORMAT_NAME, Csv\CsvParser::getSpreadsheetLoader());
56
    }
57
}
58