Blame view

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