Blame view

backend/components/parsers/ParserHandler.php 1.34 KB
fcd9278e   Mihail   parser csv v1
1
  <?php
dc10d651   Mihail   add value filter ...
2
  namespace backend\components;
b13b1c83   Mihail   final version par...
3
4
  
  use Yii;
1e991822   Mihail   csv parser with e...
5
  
fcd9278e   Mihail   parser csv v1
6
7
8
9
10
11
  
  class ParserHandler {
  
  /** @var string */
      private $filePath;
  
2957209c   Mihail   csv parser - add ...
12
13
14
15
      /** @var instance of SplFileObject */
      private $fileObject;
  
      /** @var string - extension of file $filePath */
fcd9278e   Mihail   parser csv v1
16
17
      private $extension;
  
2957209c   Mihail   csv parser - add ...
18
      /** @var string - extension of file $filePath */
b13b1c83   Mihail   final version par...
19
      private $options;
2957209c   Mihail   csv parser - add ...
20
  
fcd9278e   Mihail   parser csv v1
21
      /**
2957209c   Mihail   csv parser - add ...
22
       * @param string first line in file for parsing
fcd9278e   Mihail   parser csv v1
23
       */
b13b1c83   Mihail   final version par...
24
      public function __construct( $filePath, $options  )
fcd9278e   Mihail   parser csv v1
25
26
      {
          $this->filePath = $filePath;
b13b1c83   Mihail   final version par...
27
          $this->options = $options;
2957209c   Mihail   csv parser - add ...
28
29
30
  
          try {
              $this->fileObject = new \SplFileObject( $this->filePath , 'r' );;
b13b1c83   Mihail   final version par...
31
          } catch (\ErrorException $e) {
2957209c   Mihail   csv parser - add ...
32
33
              Yii::warning("Ошибка открытия файла {$this->filePath}");
          }
fcd9278e   Mihail   parser csv v1
34
  
2957209c   Mihail   csv parser - add ...
35
36
          //preg_match( '/\.[^\.]+$/i',$filePath, $resultArray );
          $this->extension = $this->fileObject->getExtension();
fcd9278e   Mihail   parser csv v1
37
38
39
          $this->run();
      }
  
9ef73019   Mihail   parser
40
      public function run(){
2957209c   Mihail   csv parser - add ...
41
          if ($this->extension = 'csv'){
b13b1c83   Mihail   final version par...
42
43
              $first_line = isset( $this->options->first_line )? $this->options->first_line : 0;
              $first_column = isset( $this->options->first_column )? $this->options->first_column : 0;
1e991822   Mihail   csv parser with e...
44
  
2957209c   Mihail   csv parser - add ...
45
              $csvParser = new CsvParser( );
b13b1c83   Mihail   final version par...
46
47
              $csvParser->setup( $this->fileObject, $first_line, $first_column );
  
2772f19c   Mihail   parser csv v2
48
              return $csvParser->read();
fcd9278e   Mihail   parser csv v1
49
50
          };
      }
1e991822   Mihail   csv parser with e...
51
  }