protected function getcapabilities()
 {
     $cacheId = $this->repository->getKey() . '_' . $this->project->getKey() . '_' . $this->param('service');
     $hash = jCache::get($cacheId . '_hash');
     $cachedMime = jCache::get($cacheId . '_mime');
     $cachedData = jCache::get($cacheId . '_data');
     $newhash = md5_file(realpath($this->repository->getPath()) . '/' . $this->project->getKey() . ".qgs");
     // Verifying cache content
     if ($cachedData && preg_match('#ServiceExceptionReport#i', $cachedData)) {
         $hash = null;
         $cachedMime = null;
         $cachedData = null;
         jCache::delete($cacheId . '_hash');
     }
     // Cache exists for the unchanged QGIS project file
     if ($hash and $cachedMime and $cachedData and $hash == $newhash) {
         return (object) array('code' => 200, 'mime' => $cachedMime, 'data' => $cachedData, 'cached' => True);
     }
     // No cache or the file content has changed
     $url = $this->services->wmsServerURL . '?';
     $bparams = http_build_query($this->params);
     $querystring = $url . $bparams;
     // Get remote data
     $getRemoteData = lizmapProxy::getRemoteData($querystring, $this->services->proxyMethod, $this->services->debugMode);
     $data = $getRemoteData[0];
     $mime = $getRemoteData[1];
     $code = $getRemoteData[2];
     return (object) array('code' => $code, 'mime' => $mime, 'data' => $data, 'cached' => False);
 }
예제 #2
0
 public function testDelete()
 {
     $this->assertTrue(jCache::set('deleteKey', 'data to delete', 0, $this->profile));
     $this->assertTrue(jCache::delete('deleteKey', $this->profile));
     $this->assertFalse(jCache::get('deleteKey', $this->profile));
     $this->assertFalse(jCache::delete('inexistentKey', $this->profile));
 }
예제 #3
0
 public function deleteContainer($formSel, $formId)
 {
     list($selector, $formId, $key) = $this->getCacheKey($formSel, $formId);
     if (isset($this->containers[$key])) {
         $container = $this->containers[$key];
     } else {
         $container = jCache::get($key, 'jforms');
         if (!$container) {
             return;
         }
         $this->containers[$key] = $container;
     }
     if (is_numeric($formId) && $formId == self::DEFAULT_ID) {
         if (--$container->refcount > 0) {
             $container->clear();
             return;
         }
     }
     jCache::delete($key, 'jforms');
     unset($this->containers[$key]);
 }
 public function clearCache()
 {
     $file = $this->repository->getPath() . $this->key . '.qgs';
     try {
         jCache::delete($file, 'qgisprojects');
     } catch (Exception $e) {
         // if qgisprojects profile does not exist, or if there is an
         // other error about the cache, let's log it
         jLog::log($e->getMessage(), 'error');
     }
 }