Blame view

common/components/archives/ArchiveReader.php 2.51 KB
57e5a4b9   Mihail   add classes to wo...
1
2
3
4
5
6
7
  <?php
  /**
   * Created by PhpStorm.
   * User: Tsurkanov
   * Date: 03.11.2015
   * Time: 14:48
   */
4f3f27e8   Mihail   temp commit - tes...
8
  namespace common\components\archives;
d95262f3   Mihail   finish with mail ...
9
10
11
12
13
  /**
   * Class ArchiveReader
   * @package common\components\archives
   * абстрактный класс для предоставления универсального интерфейса по работе с архиваторами (в режиме распаковки архивов)
   */
57e5a4b9   Mihail   add classes to wo...
14
15
  abstract class ArchiveReader
  {
d95262f3   Mihail   finish with mail ...
16
17
18
19
      /**
       * @var - экземляр конкретного архиватора
       */
      protected $resource;
57e5a4b9   Mihail   add classes to wo...
20
  
d95262f3   Mihail   finish with mail ...
21
22
23
24
      /**
       * @var array - массив извлеченных файлов
       * после распаковки будет содержать все распакованные файлы, ключ - путь к файлу, значение - расширение
       */
57e5a4b9   Mihail   add classes to wo...
25
      protected $extracted_files = [];
d95262f3   Mihail   finish with mail ...
26
27
28
29
      /**
       * @var - префикс который будет прибавлен к оригинальному имени сохраняемого файла
       */
      protected $file_name_prefix = '';
57e5a4b9   Mihail   add classes to wo...
30
  
d95262f3   Mihail   finish with mail ...
31
32
33
34
35
      /**
       * @param $file - имя открываемого архива
       * @param string $password - пароль (необяз) открываемого архива
       * @return mixed - true если успешно и throw  при неудаче
       */
57e5a4b9   Mihail   add classes to wo...
36
37
      public abstract function open( $file, $password = '');
  
d95262f3   Mihail   finish with mail ...
38
39
40
41
42
43
44
  
      /**
       * @param $destination - путь куда положить распакованные файлы
       * если указан аттрибут $file_name_prefix то происходит переименование файла
       * в результате выполнения метода заполняется аттрибут $extracted_files извлеченными файлами
       * если извлечение не произошло аттрибут $extracted_files - пустой
       */
57e5a4b9   Mihail   add classes to wo...
45
46
      public abstract function extractTo($destination);
  
d95262f3   Mihail   finish with mail ...
47
48
49
      /**
       * @return string- возвращает MIME-тип, расширение которое поддерживает архиватор
       */
57e5a4b9   Mihail   add classes to wo...
50
51
52
53
54
55
56
57
      public static abstract function getExtension();
  
      public  function getExtractedFiles(){
          return $this->extracted_files;
      }
      public  function setExtractedFiles($name, $ext){
          $this->extracted_files[$name] = $ext;
      }
d95262f3   Mihail   finish with mail ...
58
59
60
61
62
63
64
      /**
       * @param mixed $file_name_prefix
       */
      public function setFileNamePrefix($file_name_prefix)
      {
          $this->file_name_prefix = $file_name_prefix;
      }
57e5a4b9   Mihail   add classes to wo...
65
66
  
  }