Ejemplo n.º 1
0
 /**
  * Updates cache usage statistics.
  * Each of parameters is added to appropriate existing stats.
  *
  * @param int $hit
  * @param int $miss
  * @param int $quota
  * @param int $posts
  * @param float $files
  * @return void
  */
 public function writeStatistic($hit = 0, $miss = 0, $quota = 0, $posts = 0, $files = 0.0)
 {
     $fileValues = $this->readStatistic();
     if ($fileValues) {
         $newValues = array(intval($fileValues["HITS"]) + $hit, intval($fileValues["MISSES"]) + $miss, intval($fileValues["QUOTA"]) + $quota, intval($fileValues["POSTS"]) + $posts, $files === false ? 0 : doubleval($fileValues["FILE_SIZE"]) + doubleval($files));
         $this->statFile->putContents(implode(",", $newValues));
     }
 }
Ejemplo n.º 2
0
 private function appendContentNonCloud($fileContent, $startRange, $endRange, $fileSize)
 {
     $file = new IO\File($this->getAbsolutePath());
     if (!$file->isExists()) {
         $this->errorCollection->addOne(new Error('Could not find file', static::ERROR_EXISTS_FILE));
         return false;
     }
     if ($file->putContents($fileContent, $file::APPEND) === false) {
         $this->errorCollection->addOne(new Error('Could not put contents to file', static::ERROR_PUT_CONTENTS));
         return false;
     }
     return true;
 }
Ejemplo n.º 3
0
 public function write($arAllVars, $baseDir, $initDir, $filename, $TTL)
 {
     $documentRoot = \Bitrix\Main\Application::getDocumentRoot();
     $fn = IO\Path::combine($documentRoot, $baseDir, $initDir, $filename);
     $file = new IO\File($fn);
     $fnTmp = IO\Path::combine($documentRoot, $baseDir, $initDir, md5(mt_rand()) . ".tmp");
     $fileTmp = new IO\File($fnTmp);
     $dir = $file->getDirectory();
     if (!$dir->isExists()) {
         $dir->create();
     }
     if (is_array($arAllVars)) {
         $contents = "<?";
         $contents .= "\nif(\$INCLUDE_FROM_CACHE!='Y')return false;";
         $contents .= "\n\$datecreate = '" . str_pad(mktime(), 12, "0", STR_PAD_LEFT) . "';";
         $contents .= "\n\$dateexpire = '" . str_pad(mktime() + IntVal($TTL), 12, "0", STR_PAD_LEFT) . "';";
         $v = serialize($arAllVars);
         if (static::checkZeroDanger()) {
             $v = str_replace("*", "", $v);
             $contents .= "\n\$zeroDanger = true;";
         }
         $contents .= "\n\$ser_content = '" . str_replace("'", "\\'", str_replace("\\", "\\\\", $v)) . "';";
         $contents .= "\nreturn true;";
         $contents .= "\n?>";
     } else {
         $contents = "BX" . str_pad(mktime(), 12, "0", STR_PAD_LEFT) . str_pad(mktime() + IntVal($this->TTL), 12, "0", STR_PAD_LEFT);
         $contents .= $arAllVars;
     }
     $this->written = $fileTmp->putContents($contents);
     $len = \Bitrix\Main\Text\String::strlenBytes($contents);
     //This checks for Zend Server CE in order to supress warnings
     if (function_exists('accelerator_reset')) {
         try {
             $file->delete();
         } catch (\Exception $ex) {
         }
     } elseif ($file->isExists()) {
         $file->delete();
     }
     if ($this->written === $len) {
         $fileTmp->rename($fn);
     }
     //This checks for Zend Server CE in order to supress warnings
     if (function_exists('accelerator_reset')) {
         try {
             IO\File::deleteFile($fnTmp);
         } catch (\Exception $ex) {
         }
     } elseif (IO\File::isFileExists($fnTmp)) {
         IO\File::deleteFile($fnTmp);
     }
 }
Ejemplo n.º 4
0
 /**
  * @param array $value
  * @return $this
  */
 private function _saveData(array $value = null)
 {
     $this->_file->putContents(\WS\Migrations\arrayToJson($value));
     return $this;
 }
Ejemplo n.º 5
0
 /**
  * Writes a debug information in a log file
  */
 private function writeDebug()
 {
     if (!$this->debugEnabled || !defined("BX_COMPOSITE_DEBUG") || BX_COMPOSITE_DEBUG !== true || !$this->storage->exists()) {
         return;
     }
     if (!$this->storage->shouldCountQuota() || \CHTMLPagesCache::checkQuota()) {
         //temporary check
         if ($this->storage instanceof StaticHtmlFileStorage) {
             $cacheFile = $this->storage->getCacheFile();
             $backupName = $cacheFile->getPath() . ".delete." . microtime(true);
             AddMessage2Log($backupName, "composite");
             $backupFile = new Main\IO\File($backupName);
             $backupFile->putContents($cacheFile->getContents());
             \CHTMLPagesCache::writeStatistic(0, 0, 0, 0, $cacheFile->getSize());
         } else {
             AddMessage2Log($this->cacheKey . " was deleted", "composite");
         }
     } else {
         AddMessage2Log($this->cacheKey . "(quota exceeded)", "composite");
     }
 }