Blame view

vendor/yiisoft/multiparser/YiiParserHandler.php 2.04 KB
d10eb153   Mihail   add multiparser y...
1
2
3
4
5
6
7
8
9
10
11
  <?php
  /**
   * Created by PhpStorm.
   * User: Cibermag
   * Date: 07.09.2015
   * Time: 15:53
   */
  
  namespace yii\multiparser;
  
  
d3cf6647   Mihail   add multiply pric...
12
13
  use common\components\CustomVarDamp;
  
d10eb153   Mihail   add multiparser y...
14
15
16
  class YiiParserHandler extends ParserHandler{
  
  
74072a2a   Mihail   add first version...
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
      /**
       * @param $filePath
       * @param array $options
       * проверяет читабенльность переданного файла, а также наличие настроек парсера в конфигурационном файле для данного типа файла
       */
      public function __construct($filePath,  $options = [])
      {
          $this->filePath = $filePath;
          if (isset($options['mode'])) {
  
              $this->mode = $options['mode'];
              unset($options['mode']);
  
          } else {
  
              $this->mode = self::DEFAULT_MODE;
  
          }
  
          $this->options = $options;
  
          try {
              $this->fileObject = new \SplFileObject($this->filePath, 'r');
          } catch (\ErrorException $e) {
              //  Yii::warning("Ошибка открытия файла {$this->filePath}");
              echo "Ошибка открытия файла {$this->filePath}";
              return [];
          }
  
          $options['file'] = $this->fileObject;
          $this->extension = $this->fileObject->getExtension();
  
          try {
              $this->configuration = \Yii::$app->multiparser->getConfiguration($this->extension, $this->mode);
d3cf6647   Mihail   add multiply pric...
51
              $this->configuration = array_merge_recursive ($this->configuration, $options);
74072a2a   Mihail   add first version...
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
          } catch (\ErrorException $e) {
              echo $e->getMessage();
              return [];
          }
  
      }
  
      public function run()
      {
  
          $result = [];
  
          // \common\components\CustomVarDamp::dumpAndDie($this);
          if (count($this->configuration)) {
              $parser = \Yii::createObject($this->configuration);
  
              try {
  
                  $parser->setup();
                  $result = $parser->read();
  
              } catch (\ErrorException $e) {
  
                  echo $e->getMessage();
  
              }
  
          }
  
          return $result;
      }
  
d10eb153   Mihail   add multiparser y...
84
  }