Exemplo n.º 1
0
 public function save()
 {
     $type = $this->getDataType();
     $format = $this->getDataFormat();
     // Before saving the data, attempt to compress it.
     if ($type == self::DATATYPE_TEXT) {
         if ($format == self::DATAFORMAT_RAW) {
             $data = $this->getData();
             $deflated = PhabricatorCaches::maybeDeflateData($data);
             if ($deflated !== null) {
                 $this->data = $deflated;
                 $this->dataFormat = self::DATAFORMAT_DEFLATED;
             }
         }
     }
     return parent::save();
 }
 private function willWriteValue($key, $value)
 {
     if (!is_string($value)) {
         throw new Exception(pht('Only strings may be written to the DB cache!'));
     }
     static $can_deflate;
     if ($can_deflate === null) {
         $can_deflate = function_exists('gzdeflate') && PhabricatorEnv::getEnvConfig('cache.enable-deflate');
     }
     if ($can_deflate) {
         $deflated = PhabricatorCaches::maybeDeflateData($value);
         if ($deflated !== null) {
             return array(self::CACHE_FORMAT_DEFLATE, $deflated);
         }
     }
     return array(self::CACHE_FORMAT_RAW, $value);
 }