Blame view

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