Commit f90f5f26a26fb0013f9b1f8f6c1d757b9d838b2e

Authored by Mihail
1 parent d0a7acb3

add parser interface and Parser configurator

backend/components/parsers/CsvParser.php
... ... @@ -10,7 +10,7 @@ use Yii;
10 10 use yii\base\ErrorException;
11 11 use common\components\debug\CustomVarDamp;
12 12  
13   -class CsvParser
  13 +class CsvParser implements ParserInterface
14 14 {
15 15  
16 16  
... ...
backend/components/parsers/ParserConfigurator.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Cibermag
  5 + * Date: 04.09.2015
  6 + * Time: 18:17
  7 + */
  8 +
  9 +namespace backend\components\parsers;
  10 +
  11 +
  12 +class ParserConfigurator {
  13 + public static function getConfiguration ()
  14 + {
  15 + return [
  16 + 'class' => 'backend\components\parsers\CustomCsvParser',
  17 + // 'file' => $this->fileObject,
  18 + 'auto_detect_first_line' => true,
  19 + ];
  20 + }
  21 +
  22 +}
0 23 \ No newline at end of file
... ...
backend/components/parsers/ParserHandler.php
... ... @@ -17,15 +17,15 @@ class ParserHandler {
17 17 private $extension;
18 18  
19 19 /** @var string - extension of file $filePath */
20   - private $options;
  20 + private $mode;
21 21  
22 22 /**
23 23 * @param string first line in file for parsing
24 24 */
25   - public function __construct( $filePath, $options )
  25 + public function __construct( $filePath, $mode )
26 26 {
27 27 $this->filePath = $filePath;
28   - $this->options = $options;
  28 + $this->mode = $mode;
29 29  
30 30 try {
31 31 $this->fileObject = new \SplFileObject( $this->filePath , 'r' );;
... ... @@ -38,17 +38,10 @@ class ParserHandler {
38 38 }
39 39  
40 40 public function run(){
41   - if ($this->extension = 'csv'){
42 41  
43   - $csvParser = Yii::createObject([
44   - 'class' => 'backend\components\parsers\CustomCsvParser',
45   - 'file' => $this->fileObject,
46   - 'auto_detect_first_line' => true,
47   - ]);
48   -
49   - $csvParser->setup();
50   -
51   - return $csvParser->read();
52   - };
  42 + $parser = Yii::createObject( ParserConfigurator::getConfiguration() );
  43 + $parser->setup();
  44 + return $parser->read();
53 45 }
54 46 }
  47 +
... ...
backend/components/parsers/ParserInterface.php 0 → 100644
  1 +<?php
  2 +/**
  3 + * Created by PhpStorm.
  4 + * User: Cibermag
  5 + * Date: 04.09.2015
  6 + * Time: 18:25
  7 + */
  8 +
  9 +namespace backend\components\parsers;
  10 +
  11 +
  12 +interface ParserInterface {
  13 + public function setup();
  14 +
  15 + public function read();
  16 +
  17 +
  18 +}
0 19 \ No newline at end of file
... ...