ParserHandler.php
1.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
namespace backend\components\parsers;
use common\components\debug\CustomVarDamp;
use Yii;
class ParserHandler {
/** @var string */
    private $filePath;
    /** @var instance of SplFileObject */
    private $fileObject;
    /** @var string - extension of file $filePath */
    private $extension;
    /** @var string - extension of file $filePath */
    private $options;
    /**
     * @param string first line in file for parsing
     */
    public function __construct( $filePath, $options  )
    {
        $this->filePath = $filePath;
        $this->options = $options;
        try {
            $this->fileObject = new \SplFileObject( $this->filePath , 'r' );;
        } catch (\ErrorException $e) {
            Yii::warning("Ошибка открытия файла {$this->filePath}");
        }
        //preg_match( '/\.[^\.]+$/i',$filePath, $resultArray );
        $this->extension = $this->fileObject->getExtension();
    }
    public function run(){
        if ($this->extension = 'csv'){
            $first_line = isset( $this->options->first_line )? $this->options->first_line : 0;
            $first_column = isset( $this->options->first_column )? $this->options->first_column : 0;
            $csvParser = Yii::createObject([
                'class' => 'backend\components\parsers\CsvParser',
                'file' => $this->fileObject,
                'auto_detect_start_position' => true,
            ]);
            //CustomVarDamp::dumpAndDie($csvParser);
           // $csvParser = new CsvParser( );
            $csvParser->setup(  );
//            CustomVarDamp::dumpAndDie($data);
            return $csvParser->read();;//
        };
    }
}