PluginProbe ʕ •ᴥ•ʔ
JetBackup – Backup, Restore & Migrate / 2.0.3
JetBackup – Backup, Restore & Migrate v2.0.3
3.1.22.3 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.8.1 1.4.9 1.5.0 1.5.1 1.5.1.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.10 1.6.11 1.6.12 1.6.13 1.6.15 1.6.5.1 1.6.8.8 1.6.9 1.6.9.1 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7.5 2.0.8.7 2.0.9.11 2.0.9.14 2.0.9.15 2.0.9.6 2.0.9.7 2.0.9.9 3.1.10.7 3.1.11.1 3.1.12.3 3.1.13.4 3.1.14.17 3.1.15.4 3.1.16.1 3.1.17.5 3.1.18.10 3.1.18.8 3.1.18.9 3.1.19.8 3.1.20.3 3.1.21.3 3.1.7.9 3.1.9.2 trunk 1.1.90 1.1.91 1.2.0 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2
backup / com / lib / BackupGuard / Core / SGBGFileHelper.php
backup / com / lib / BackupGuard / Core Last commit date
ISGArchiveDelegate.php 3 years ago SGBGArchive.php 3 years ago SGBGArchiveCdr.php 3 years ago SGBGArchiveHelper.php 3 years ago SGBGCache.php 3 years ago SGBGCacheableFile.php 3 years ago SGBGDirectoryTreeFile.php 3 years ago SGBGFile.php 3 years ago SGBGFileHelper.php 3 years ago SGBGJsonFile.php 3 years ago SGBGLog.php 3 years ago SGBGReloader.php 3 years ago SGBGStateFile.php 3 years ago SGBGTask.php 3 years ago
SGBGFileHelper.php
99 lines
1 <?php
2 require_once(__DIR__.'/SGBGCache.php');
3
4 class SGBGFileHelper
5 {
6 private static $instances = [];
7 private $lastUpdateTs = 0;
8 private $offset = 0;
9 private $shouldCache = false;
10 private $fileCache = null;
11 private $handle = null;
12
13 private function __construct()
14 {
15 $this->fileCache = new Cache(array($this, 'write'));
16 }
17
18 private function __clone()
19 {
20
21 }
22
23 public function setShouldCache($shouldCache)
24 {
25 $this->shouldCache = $shouldCache;
26 return $this;
27 }
28
29 public function getShouldCache()
30 {
31 return $this->shouldCache;
32 }
33
34 public function setHandle($handle)
35 {
36 $this->handle = $handle;
37 return $this;
38 }
39
40 public function getHandle()
41 {
42 return $this->handle;
43 }
44
45 public function getFileCache()
46 {
47 return $this->fileCache;
48 }
49
50 public static function file($name)
51 {
52 if (!empty(self::$instances[$name]) && self::$instances[$name] instanceof self) {
53 return self::$instances[$name];
54 }
55
56 self::$instances[$name] = new self();
57 return self::$instances[$name];
58 }
59
60 public function write($string)
61 {
62 $handle = $this->getHandle();
63 if (!is_resource($handle)) {
64 return false;
65 }
66
67 $bytes = fwrite($handle, $string);
68 fflush($handle);
69
70 return $bytes;
71 }
72
73 public function close()
74 {
75 if ($this->getShouldCache()) {
76 $this->fileCache->flush();
77 }
78 }
79
80 public function fwrite($string)
81 {
82 if ($this->getShouldCache() && $this->fileCache->cache($string)) {
83 return strlen($string);
84 }
85
86 return $this->write($string);
87 }
88
89 public function ftell()
90 {
91 return (ftell($this->getHandle()) + strlen($this->fileCache->getCacheData()));
92 }
93
94 public function fread($length)
95 {
96 return fread($this->getHandle(), $length);
97 }
98 }
99