SpreadsheetParser::configureLoaders()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
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