当前位置: 首页>>代码示例>>PHP>>正文


PHP Model\Cache类代码示例

本文整理汇总了PHP中Pimcore\Model\Cache的典型用法代码示例。如果您正苦于以下问题:PHP Cache类的具体用法?PHP Cache怎么用?PHP Cache使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了Cache类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: updateIndex

 /**
  * Runs update index for all tenants
  *  - but does not run processPreparationQueue or processUpdateIndexQueue
  *
  * @param $objectListClass
  * @param string $condition
  * @param bool $updateIndexStructures
  * @param string $loggername
  */
 public static function updateIndex($objectListClass, $condition = "", $updateIndexStructures = false, $loggername = "indexupdater")
 {
     $updater = OnlineShop_Framework_Factory::getInstance()->getIndexService();
     if ($updateIndexStructures) {
         \Pimcore\Model\Cache::clearTag("ecommerceconfig");
         $updater->createOrUpdateIndexStructures();
     }
     $page = 0;
     $pageSize = 100;
     $count = $pageSize;
     while ($count > 0) {
         self::log($loggername, "=========================");
         self::log($loggername, "Update Index Page: " . $page);
         self::log($loggername, "=========================");
         $products = new $objectListClass();
         $products->setUnpublished(true);
         $products->setOffset($page * $pageSize);
         $products->setLimit($pageSize);
         $products->setObjectTypes(array("object", "folder", "variant"));
         $products->setIgnoreLocalizedFields(true);
         $products->setCondition($condition);
         foreach ($products as $p) {
             self::log($loggername, "Updating product " . $p->getId());
             $updater->updateIndex($p);
         }
         $page++;
         $count = count($products->getObjects());
         Pimcore::collectGarbage();
     }
 }
开发者ID:ascertain,项目名称:NGshop,代码行数:39,代码来源:IndexUpdater.php

示例2: __construct

 public function __construct($config)
 {
     if (!(string) $config->disableDefaultTenant) {
         $this->defaultWorker = new OnlineShop_Framework_IndexService_Tenant_Worker_DefaultMysql(new OnlineShop_Framework_IndexService_Tenant_Config_DefaultMysql("default", $config));
     }
     $this->tenantWorkers = array();
     if ($config->tenants && $config->tenants instanceof Zend_Config) {
         foreach ($config->tenants as $name => $tenant) {
             $tenantConfigClass = (string) $tenant->class;
             $tenantConfig = $tenant;
             if ($tenant->file) {
                 if (!($tenantConfig = \Pimcore\Model\Cache::load("onlineshop_config_assortment_tenant_" . $tenantConfigClass))) {
                     $tenantConfig = new Zend_Config_Xml(PIMCORE_DOCUMENT_ROOT . (string) $tenant->file, null, true);
                     $tenantConfig = $tenantConfig->tenant;
                     \Pimcore\Model\Cache::save($tenantConfig, "onlineshop_config_assortment_tenant_" . $tenantConfigClass, array("ecommerceconfig"), 9999);
                 }
             }
             /**
              * @var $tenantConfig OnlineShop_Framework_IndexService_Tenant_IConfig
              */
             $tenantConfig = new $tenantConfigClass($name, $tenantConfig, $config);
             $worker = $tenantConfig->getTenantWorker();
             $this->tenantWorkers[$name] = $worker;
         }
     }
 }
开发者ID:ascertain,项目名称:NGshop,代码行数:26,代码来源:IndexService.php

示例3: jobProceduralAction

 public function jobProceduralAction()
 {
     $status = array("success" => true);
     if ($this->getParam("type") == "files") {
         Update::installData($this->getParam("revision"));
     } else {
         if ($this->getParam("type") == "clearcache") {
             \Pimcore\Model\Cache::clearAll();
         } else {
             if ($this->getParam("type") == "preupdate") {
                 $status = Update::executeScript($this->getParam("revision"), "preupdate");
             } else {
                 if ($this->getParam("type") == "postupdate") {
                     $status = Update::executeScript($this->getParam("revision"), "postupdate");
                 } else {
                     if ($this->getParam("type") == "cleanup") {
                         Update::cleanup();
                     } else {
                         if ($this->getParam("type") == "languages") {
                             Update::downloadLanguage();
                         }
                     }
                 }
             }
         }
     }
     $this->_helper->json($status);
 }
开发者ID:pawansgi92,项目名称:pimcore2,代码行数:28,代码来源:IndexController.php

示例4: jobProceduralAction

 public function jobProceduralAction()
 {
     $status = array("success" => true);
     if ($this->getParam("type") == "files") {
         Update::installData($this->getParam("revision"));
     } else {
         if ($this->getParam("type") == "clearcache") {
             \Pimcore\Model\Cache::clearAll();
         } else {
             if ($this->getParam("type") == "preupdate") {
                 $status = Update::executeScript($this->getParam("revision"), "preupdate");
             } else {
                 if ($this->getParam("type") == "postupdate") {
                     $status = Update::executeScript($this->getParam("revision"), "postupdate");
                 } else {
                     if ($this->getParam("type") == "cleanup") {
                         Update::cleanup();
                     }
                 }
             }
         }
     }
     // we use pure PHP here, otherwise this can cause issues with dependencies that changed during the update
     header("Content-type: application/json");
     echo json_encode($status);
     exit;
 }
开发者ID:ChristophWurst,项目名称:pimcore,代码行数:27,代码来源:IndexController.php

示例5: dispatchLoopShutdown

 /**
  *
  */
 public function dispatchLoopShutdown()
 {
     $code = (string) $this->getResponse()->getHttpResponseCode();
     if ($code && ($code[0] == "4" || $code[0] == "5")) {
         $this->writeLog();
         // put the response into the cache, this is read in Pimcore_Controller_Action_Frontend::checkForErrors()
         $responseData = $this->getResponse()->getBody();
         if (strlen($responseData) > 20) {
             $cacheKey = "error_page_response_" . \Pimcore\Tool\Frontend::getSiteKey();
             \Pimcore\Model\Cache::save($responseData, $cacheKey, array("output"), 900, 9992);
         }
     }
 }
开发者ID:Gerhard13,项目名称:pimcore,代码行数:16,代码来源:HttpErrorLog.php

示例6: getMockupFromCache

 /**
  * gets mockup from cache and if not in cache, adds it to cache
  *
  * @param $objectId
  * @return OnlineShop_Framework_ProductList_DefaultMockup
  */
 public function getMockupFromCache($objectId)
 {
     $key = $this->createMockupCacheKey($objectId);
     $cachedItem = \Pimcore\Model\Cache::load($key);
     if ($cachedItem) {
         $mockup = unserialize($cachedItem);
         if ($mockup instanceof OnlineShop_Framework_ProductList_DefaultMockup) {
             return $mockup;
         }
     }
     Logger::info("Element with ID {$objectId} was not found in cache, trying to put it there.");
     return $this->saveToMockupCache($objectId);
 }
开发者ID:ascertain,项目名称:NGshop,代码行数:19,代码来源:MockupCache.php

示例7: __construct

 /**
  * @param $domain
  */
 public function __construct($domain)
 {
     $this->_domain = $domain;
     try {
         $robotsUrl = $domain . '/robots.txt';
         $cacheKey = "robots_" . crc32($robotsUrl);
         if (!($robotsTxt = Cache::load($cacheKey))) {
             $robotsTxt = \Pimcore\Tool::getHttpData($robotsUrl);
             Cache::save($robotsTxt, $cacheKey, array("system"), 3600, 999, true);
         }
         $this->_rules = $this->_makeRules($robotsTxt);
     } catch (\Exception $e) {
     }
 }
开发者ID:ChristophWurst,项目名称:pimcore,代码行数:17,代码来源:RobotsTxt.php

示例8: load

 /**
  *
  */
 public function load()
 {
     $client = Api::getSimpleClient();
     $config = $this->getConfig();
     $perPage = $this->getPerPage();
     $offset = $this->getOffset();
     $query = $this->getQuery();
     if ($client) {
         $search = new \Google_Service_Customsearch($client);
         // determine language
         $language = "";
         if (\Zend_Registry::isRegistered("Zend_Locale")) {
             $locale = \Zend_Registry::get("Zend_Locale");
             $language = $locale->getLanguage();
         }
         if (!array_key_exists("hl", $config) && !empty($language)) {
             $config["hl"] = $language;
         }
         if (!array_key_exists("lr", $config) && !empty($language)) {
             $config["lr"] = "lang_" . $language;
         }
         if ($query) {
             if ($offset) {
                 $config["start"] = $offset + 1;
             }
             if (empty($perPage)) {
                 $perPage = 10;
             }
             $config["num"] = $perPage;
             $cacheKey = "google_cse_" . md5($query . serialize($config));
             // this is just a protection so that no query get's sent twice in a request (loops, ...)
             if (\Zend_Registry::isRegistered($cacheKey)) {
                 $result = \Zend_Registry::get($cacheKey);
             } else {
                 if (!($result = Cache::load($cacheKey))) {
                     $result = $search->cse->listCse($query, $config);
                     Cache::save($result, $cacheKey, array("google_cse"), 3600, 999);
                     \Zend_Registry::set($cacheKey, $result);
                 }
             }
             $this->readGoogleResponse($result);
             return $this->getResults(false);
         }
         return array();
     } else {
         throw new \Exception("Google Simple API Key is not configured in System-Settings.");
     }
 }
开发者ID:ChristophWurst,项目名称:pimcore,代码行数:51,代码来源:Cse.php

示例9: __construct

 /**
  * @param Zend_Config $config     -> configuration to contain
  * @param string      $identifier -> cache identifier for caching sub files
  */
 public function __construct(Zend_Config $config, $identifier)
 {
     $this->defaultConfig = $config;
     foreach ((array) $config->tenants as $tenantName => $tenantConfig) {
         if ($tenantConfig instanceof Zend_Config) {
             if ($tenantConfig->file) {
                 $cacheKey = "onlineshop_config_" . $identifier . "_checkout_tenant_" . $tenantName;
                 if (!($tenantConfigFile = \Pimcore\Model\Cache::load($cacheKey))) {
                     $tenantConfigFile = new Zend_Config_Xml(PIMCORE_DOCUMENT_ROOT . (string) $tenantConfig->file, null, true);
                     $tenantConfigFile = $tenantConfigFile->tenant;
                     \Pimcore\Model\Cache::save($tenantConfigFile, $cacheKey, array("ecommerceconfig"), 9999);
                 }
                 $this->tenantConfigs[$tenantName] = $tenantConfigFile;
             } else {
                 $this->tenantConfigs[$tenantName] = $tenantConfig;
             }
         }
     }
 }
开发者ID:ascertain,项目名称:NGshop,代码行数:23,代码来源:HelperContainer.php

示例10: getAllTranslations

 /**
  * @return array|mixed
  */
 public function getAllTranslations()
 {
     $cacheKey = static::getTableName() . "_data";
     if (!($translations = Cache::load($cacheKey))) {
         $itemClass = static::getItemClass();
         $translations = array();
         $translationsData = $this->db->fetchAll("SELECT * FROM " . static::getTableName());
         foreach ($translationsData as $t) {
             if (!$translations[$t["key"]]) {
                 $translations[$t["key"]] = new $itemClass();
                 $translations[$t["key"]]->setKey($t["key"]);
             }
             $translations[$t["key"]]->addTranslation($t["language"], $t["text"]);
             //for legacy support
             if ($translations[$t["key"]]->getDate() < $t["creationDate"]) {
                 $translations[$t["key"]]->setDate($t["creationDate"]);
             }
             $translations[$t["key"]]->setCreationDate($t["creationDate"]);
             $translations[$t["key"]]->setModificationDate($t["modificationDate"]);
         }
         Cache::save($translations, $cacheKey, array("translator", "translate"), 999);
     }
     return $translations;
 }
开发者ID:rolandstoll,项目名称:pimcore,代码行数:27,代码来源:Resource.php

示例11: _loadTranslationData

 /**
  * @param null $data
  * @param $locale
  * @param array $options
  * @return array
  */
 protected function _loadTranslationData($data, $locale, array $options = array())
 {
     $locale = (string) $locale;
     $tmpKeyParts = explode("\\", self::getBackend());
     $cacheKey = "Translate_" . array_pop($tmpKeyParts) . "_data_" . $locale;
     if (!($data = Cache::load($cacheKey))) {
         $data = array("__pimcore_dummy" => "only_a_dummy");
         $listClass = self::getBackend() . "\\Listing";
         $list = new $listClass();
         if ($list->isCacheable()) {
             $list->setCondition("language = ?", array($locale));
             $translations = $list->loadRaw();
             foreach ($translations as $translation) {
                 $data[mb_strtolower($translation["key"])] = Tool\Text::removeLineBreaks($translation["text"]);
             }
             Cache::save($data, $cacheKey, array("translator", "translator_website", "translate"), null, 999);
             $this->isCacheable = true;
         } else {
             $this->isCacheable = false;
         }
     }
     $this->_translate[$locale] = $data;
     return $this->_translate;
 }
开发者ID:pawansgi92,项目名称:pimcore2,代码行数:30,代码来源:Translate.php

示例12: checkForRedirect

 /**
  * Checks for a suitable redirect
  * @throws Exception
  * @param bool $override
  * @return void
  */
 protected function checkForRedirect($override = false)
 {
     // not for admin requests
     if (Tool::isFrontentRequestByAdmin()) {
         return;
     }
     try {
         $front = \Zend_Controller_Front::getInstance();
         $config = Config::getSystemConfig();
         // get current site if available
         $sourceSite = null;
         if (Site::isSiteRequest()) {
             $sourceSite = Site::getCurrentSite();
         }
         $cacheKey = "system_route_redirect";
         if (empty($this->redirects) && !($this->redirects = Cache::load($cacheKey))) {
             $list = new Redirect\Listing();
             $list->setOrder("DESC");
             $list->setOrderKey("priority");
             $this->redirects = $list->load();
             Cache::save($this->redirects, $cacheKey, array("system", "redirect", "route"), null, 998);
         }
         $requestScheme = $_SERVER['HTTPS'] == 'on' ? \Zend_Controller_Request_Http::SCHEME_HTTPS : \Zend_Controller_Request_Http::SCHEME_HTTP;
         $matchRequestUri = $_SERVER["REQUEST_URI"];
         $matchUrl = $requestScheme . "://" . $_SERVER["HTTP_HOST"] . $matchRequestUri;
         foreach ($this->redirects as $redirect) {
             $matchAgainst = $matchRequestUri;
             if ($redirect->getSourceEntireUrl()) {
                 $matchAgainst = $matchUrl;
             }
             // if override is true the priority has to be 99 which means that overriding is ok
             if (!$override || $override && $redirect->getPriority() == 99) {
                 if (@preg_match($redirect->getSource(), $matchAgainst, $matches)) {
                     // check for a site
                     if ($sourceSite) {
                         if ($sourceSite->getId() != $redirect->getSourceSite()) {
                             continue;
                         }
                     }
                     array_shift($matches);
                     $target = $redirect->getTarget();
                     if (is_numeric($target)) {
                         $d = Document::getById($target);
                         if ($d instanceof Document\Page || $d instanceof Document\Link || $d instanceof Document\Hardlink) {
                             $target = $d->getFullPath();
                         } else {
                             \Logger::error("Target of redirect no found (Document-ID: " . $target . ")!");
                             continue;
                         }
                     }
                     // replace escaped % signs so that they didn't have effects to vsprintf (PIMCORE-1215)
                     $target = str_replace("\\%", "###URLENCODE_PLACEHOLDER###", $target);
                     $url = vsprintf($target, $matches);
                     $url = str_replace("###URLENCODE_PLACEHOLDER###", "%", $url);
                     // support for pcre backreferences
                     $url = replace_pcre_backreferences($url, $matches);
                     if ($redirect->getTargetSite() && !preg_match("@http(s)?://@i", $url)) {
                         try {
                             $targetSite = Site::getById($redirect->getTargetSite());
                             // if the target site is specified and and the target-path is starting at root (not absolute to site)
                             // the root-path will be replaced so that the page can be shown
                             $url = preg_replace("@^" . $targetSite->getRootPath() . "/@", "/", $url);
                             $url = $requestScheme . "://" . $targetSite->getMainDomain() . $url;
                         } catch (\Exception $e) {
                             \Logger::error("Site with ID " . $redirect->getTargetSite() . " not found.");
                             continue;
                         }
                     } else {
                         if (!preg_match("@http(s)?://@i", $url) && $config->general->domain && $redirect->getSourceEntireUrl()) {
                             // prepend the host and scheme to avoid infinite loops when using "domain" redirects
                             $url = ($front->getRequest()->isSecure() ? "https" : "http") . "://" . $config->general->domain . $url;
                         }
                     }
                     // pass-through parameters if specified
                     $queryString = $_SERVER["QUERY_STRING"];
                     if ($redirect->getPassThroughParameters() && !empty($queryString)) {
                         $glue = "?";
                         if (strpos($url, "?")) {
                             $glue = "&";
                         }
                         $url .= $glue;
                         $url .= $queryString;
                     }
                     header($redirect->getHttpStatus());
                     header("Location: " . $url, true, $redirect->getStatusCode());
                     // log all redirects to the redirect log
                     \Pimcore\Log\Simple::log("redirect", Tool::getAnonymizedClientIp() . " \t Custom-Redirect ID: " . $redirect->getId() . " , Source: " . $_SERVER["REQUEST_URI"] . " -> " . $url);
                     exit;
                 }
             }
         }
     } catch (\Exception $e) {
         // no suitable route found
     }
//.........这里部分代码省略.........
开发者ID:ChristophWurst,项目名称:pimcore,代码行数:101,代码来源:Frontend.php

示例13: getText

 public function getText($page = null)
 {
     if (\Pimcore\Document::isAvailable() && \Pimcore\Document::isFileTypeSupported($this->getFilename())) {
         $cacheKey = "asset_document_text_" . $this->getId() . "_" . ($page ? $page : "all");
         if (!($text = Cache::load($cacheKey))) {
             $document = \Pimcore\Document::getInstance();
             $text = $document->getText($page, $this->getFileSystemPath());
             Cache::save($text, $cacheKey, $this->getCacheTags(), null, 99, true);
             // force cache write
         }
         return $text;
     } else {
         \Logger::error("Couldn't get text out of document " . $this->getFullPath() . " no document adapter is available");
     }
     return null;
 }
开发者ID:Gerhard13,项目名称:pimcore,代码行数:16,代码来源:Document.php

示例14: glossaryAction

 public function glossaryAction()
 {
     if ($this->getParam("data")) {
         $this->checkPermission("glossary");
         Cache::clearTag("glossary");
         if ($this->getParam("xaction") == "destroy") {
             $data = \Zend_Json::decode($this->getParam("data"));
             if (\Pimcore\Tool\Admin::isExtJS5()) {
                 $id = $data["id"];
             } else {
                 $id = $data;
             }
             $glossary = Glossary::getById($id);
             $glossary->delete();
             $this->_helper->json(array("success" => true, "data" => array()));
         } else {
             if ($this->getParam("xaction") == "update") {
                 $data = \Zend_Json::decode($this->getParam("data"));
                 // save glossary
                 $glossary = Glossary::getById($data["id"]);
                 if ($data["link"]) {
                     if ($doc = Document::getByPath($data["link"])) {
                         $tmpLink = $data["link"];
                         $data["link"] = $doc->getId();
                     }
                 }
                 $glossary->setValues($data);
                 $glossary->save();
                 if ($link = $glossary->getLink()) {
                     if (intval($link) > 0) {
                         if ($doc = Document::getById(intval($link))) {
                             $glossary->setLink($doc->getFullPath());
                         }
                     }
                 }
                 $this->_helper->json(array("data" => $glossary, "success" => true));
             } else {
                 if ($this->getParam("xaction") == "create") {
                     $data = \Zend_Json::decode($this->getParam("data"));
                     unset($data["id"]);
                     // save glossary
                     $glossary = new Glossary();
                     if ($data["link"]) {
                         if ($doc = Document::getByPath($data["link"])) {
                             $tmpLink = $data["link"];
                             $data["link"] = $doc->getId();
                         }
                     }
                     $glossary->setValues($data);
                     $glossary->save();
                     if ($link = $glossary->getLink()) {
                         if (intval($link) > 0) {
                             if ($doc = Document::getById(intval($link))) {
                                 $glossary->setLink($doc->getFullPath());
                             }
                         }
                     }
                     $this->_helper->json(array("data" => $glossary, "success" => true));
                 }
             }
         }
     } else {
         // get list of glossaries
         $list = new Glossary\Listing();
         $list->setLimit($this->getParam("limit"));
         $list->setOffset($this->getParam("start"));
         if ($this->getParam("sort")) {
             $list->setOrderKey($this->getParam("sort"));
             $list->setOrder($this->getParam("dir"));
         }
         if ($this->getParam("filter")) {
             $list->setCondition("`text` LIKE " . $list->quote("%" . $this->getParam("filter") . "%"));
         }
         $list->load();
         $glossaries = array();
         foreach ($list->getGlossary() as $glossary) {
             if ($link = $glossary->getLink()) {
                 if (intval($link) > 0) {
                     if ($doc = Document::getById(intval($link))) {
                         $glossary->setLink($doc->getFullPath());
                     }
                 }
             }
             $glossaries[] = $glossary;
         }
         $this->_helper->json(array("data" => $glossaries, "success" => true, "total" => $list->getTotalCount()));
     }
     $this->_helper->json(false);
 }
开发者ID:pawansgi92,项目名称:pimcore2,代码行数:89,代码来源:SettingsController.php

示例15: shutdown

 /**
  * this method is called with register_shutdown_function() and writes all data queued into the cache
  * @static
  * @return void
  */
 public static function shutdown()
 {
     // set inShutdown to true so that the output-buffer knows that he is allowed to send the headers
     self::$inShutdown = true;
     // flush all custom output buffers
     while (@ob_end_flush()) {
     }
     // flush everything
     flush();
     if (function_exists("fastcgi_finish_request")) {
         fastcgi_finish_request();
     }
     // clear tags scheduled for the shutdown
     Cache::clearTagsOnShutdown();
     // write collected items to cache backend and remove the write lock
     Cache::write();
     Cache::removeWriteLock();
     // release all open locks from this process
     Model\Tool\Lock::releaseAll();
     // disable logging - otherwise this will cause problems in the ongoing shutdown process (session write, __destruct(), ...)
     \Logger::resetLoggers();
 }
开发者ID:pdaniel-frk,项目名称:pimcore,代码行数:27,代码来源:Pimcore.php


注:本文中的Pimcore\Model\Cache类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。