本文整理汇总了PHP中Pimcore\Cache类的典型用法代码示例。如果您正苦于以下问题:PHP Cache类的具体用法?PHP Cache怎么用?PHP Cache使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Cache类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
$storeId = $input->getArgument('storeId');
if (!is_numeric($storeId)) {
throw new \Exception('Invalid store ID');
}
$db = Db::get();
$tableList = $db->fetchAll("show tables like 'object_classificationstore_data_%'");
foreach ($tableList as $table) {
$theTable = current($table);
$sql = "delete from " . $theTable . " where keyId In (select id from classificationstore_keys where storeId = " . $db->quote($storeId) . ")";
echo $sql . "\n";
$db->query($sql);
}
$tableList = $db->fetchAll("show tables like 'object_classificationstore_groups_%'");
foreach ($tableList as $table) {
$theTable = current($table);
$sql = "delete from " . $theTable . " where groupId In (select id from classificationstore_groups where storeId = " . $db->quote($storeId) . ")";
echo $sql . "\n";
$db->query($sql);
}
$sql = "delete from classificationstore_keys where storeId = " . $db->quote($storeId);
echo $sql . "\n";
$db->query($sql);
$sql = "delete from classificationstore_groups where storeId = " . $db->quote($storeId);
echo $sql . "\n";
$db->query($sql);
$sql = "delete from classificationstore_collections where storeId = " . $db->quote($storeId);
echo $sql . "\n";
$db->query($sql);
$sql = "delete from classificationstore_stores where id = " . $db->quote($storeId);
echo $sql . "\n";
$db->query($sql);
Cache::clearAll();
}
示例2: 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\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;
}
示例3: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
$status = ["success" => true];
$config = $input->getArgument("config");
if ($config) {
$job = json_decode($config, true);
if (is_array($job)) {
if (isset($job["dry-run"])) {
// do not do anything here
\Logger::info("skipped update job because it is in dry-run mode", $job);
} elseif ($job["type"] == "files") {
Update::installData($job["revision"]);
} elseif ($job["type"] == "clearcache") {
\Pimcore\Cache::clearAll();
} elseif ($job["type"] == "preupdate") {
$status = Update::executeScript($job["revision"], "preupdate");
} elseif ($job["type"] == "postupdate") {
$status = Update::executeScript($job["revision"], "postupdate");
} elseif ($job["type"] == "cleanup") {
Update::cleanup();
}
}
}
$this->output->write(json_encode($status));
}
示例4: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
if ($input->getOption("tags")) {
$tags = explode(",", $input->getOption("tags"));
Cache::clearTags($tags);
} elseif ($input->getOption("output")) {
Cache::clearTag("output");
} else {
Cache::clearAll();
}
}
示例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\Cache::save($responseData, $cacheKey, array("output"), 900, 9992);
}
}
}
示例6: __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) {
}
}
示例7: 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 && !session_id()) {
// do not cache if there's no data or an active session
if ($this->cacheKey) {
\Pimcore\Cache::save($responseData, $this->cacheKey, ["output"], 900, 9992);
}
}
}
}
示例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.");
}
}
示例9: frontend
/**
* @see Document\Tag\TagInterface::frontend
* @return string
*/
public function frontend()
{
if ($this->url) {
$config = $this->getOptions();
if (!isset($config["params"])) {
$config["params"] = [];
}
foreach (["width", "height"] as $property) {
if (isset($config[$property])) {
$config["params"][$property] = $config[$property];
}
}
$cacheKey = "doc_embed_" . crc32(serialize([$this->url, $config]));
if (!($html = \Pimcore\Cache::load($cacheKey))) {
$embera = new \Embera\Embera($config);
$html = $embera->autoEmbed($this->url);
\Pimcore\Cache::save($html, $cacheKey, ["embed"], 86400, 1, true);
}
return $html;
}
return "";
}
示例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;
}
示例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;
}
示例12: frontend
/**
* @see Document\Tag\TagInterface::frontend
* @return string
*/
public function frontend()
{
if ($this->getView() instanceof \Zend_View) {
try {
if ($this->snippet instanceof Document\Snippet) {
$params = $this->options;
$params["document"] = $this->snippet;
if ($this->snippet->isPublished()) {
// check if output-cache is enabled, if so, we're also using the cache here
$cacheKey = null;
if ($cacheConfig = \Pimcore\Tool\Frontend::isOutputCacheEnabled()) {
// cleanup params to avoid serializing Element\ElementInterface objects
$cacheParams = $params;
array_walk($cacheParams, function (&$value, $key) {
if ($value instanceof Model\Element\ElementInterface) {
$value = $value->getId();
}
});
$cacheKey = "tag_snippet__" . md5(serialize($cacheParams));
if ($content = Cache::load($cacheKey)) {
return $content;
}
}
$content = $this->getView()->action($this->snippet->getAction(), $this->snippet->getController(), $this->snippet->getModule(), $params);
// write contents to the cache, if output-cache is enabled
if ($cacheConfig) {
Cache::save($content, $cacheKey, ["output", "output_inline"], $cacheConfig["lifetime"]);
}
return $content;
}
return "";
}
} catch (\Exception $e) {
if (\Pimcore::inDebugMode()) {
return "ERROR: " . $e->getMessage() . " (for details see debug.log)";
}
\Logger::error($e);
}
} else {
return null;
}
}
示例13: delete
/**
* @return void
*/
public function delete()
{
// empty object cache
try {
Cache::clearTag("customlayout_" . $this->getId());
} catch (\Exception $e) {
}
// empty output cache
try {
Cache::clearTag("output");
} catch (\Exception $e) {
}
$this->getDao()->delete();
}
示例14: resetValidTableColumnsCache
/** Clears the column information for the given table.
* @param $table
*/
protected function resetValidTableColumnsCache($table)
{
$cacheKey = self::CACHEKEY . $table;
\Zend_Registry::getInstance()->offsetUnset($cacheKey);
Cache::clearTags(array("system", "resource"));
}
示例15: clearDependentCache
/**
* @return void
*/
public static function clearDependentCache()
{
\Pimcore\Cache::clearTags(["translator", "translate"]);
}