Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Cache by Agel_nash  #29

Copy link
Copy link
@Dmi3yy

Description

@Dmi3yy
Issue body actions

#1 Настройки кеширования документа

https://github.com/modxcms/evolution/blob/bugfix/manager/includes/document.parser.class.inc.php#L497
Вот это дело вынести в методб т.е. зачастую бывает ситуация, когда плагином/сниппетом влияют на GET массив и уже https://github.com/modxcms/evolution/blob/bugfix/manager/includes/document.parser.class.inc.php#L743 получается совсем не то

  • добавить событие для плагина что б влиять на эти параметры можнобыло даст возможность для разных страниц настраивать разный набор параметров.
    update from bugfix #2 добавить возможность влиять на AliasListing
  1. Вот тут https://github.com/modxcms/evolution/blob/bugfix/manager/includes/document.parser.class.inc.php#L268 подключается файл с DocumentListing, и всегда по коду он берется из массива. А что если до создания кэша/после получения кэша вызывать событие, чтобы иметь возможность модифицировать этот массив (хотя бы пока так). Это бы позволило без гемороя решать задачи с кастомизацией кеширования сайтов любых объемов. Допустим исключить из кеша служебные страницы, страницы товаров (если они являются папками) и т.д.
    Master #3 уменьшить чуток кеш за счет переносов строк

  2. убрать из файла https://github.com/modxcms/evolution/blob/bugfix/manager/processors/cache_sync.class.processor.php переносы строк (нахрена они в кэше). Зачастую из-за этого получается сэкономить пару КБ. Что в конечном счете всяко положительно сказывается на производительности сайта
    1.2.2 #4) разнести по файлам кеш елементов

  3. Я бы еще хотел видеть разнесеные по файлам кэши плагинов/сниппетов/чанков/документов и т.д.) ($this->pluginElvent/chunkCache/snippetCache/DocumentListing) и т.д.
    fix mysql_info #5 Сохранять в кеш

Для сниппетов и чанков добавить галочку: сохоранять в кэш (в базе даже есть поле cache_type)
[07.10.14, 10:18:57] Agel_Nash: а ты чанки в кэш пихать и не будешь если галочка сохранять в кэш снята.
[07.10.14, 10:19:44] Agel_Nash: Только метод getChunk нужно подправить как это в runSnippet https://github.com/modxcms/evolution/blob/bugfix/manager/includes/document.parser.class.inc.php#L2395
[07.10.14, 10:19:59] Agel_Nash: чтобы он подгружался из базы если нет чанка в кэше
[07.10.14, 10:20:32] Agel_Nash: сам подумай, зачем тебе чанк письма с сообщением об успешном заказе на странице регистрации?
[07.10.14, 10:21:02] Agel_Nash: а +1 запрос на странице оформления заказа это не так уж и долго (учитывая, что поиск идет по PrimaryKey индексу + чанков как правило не бывает больше 100)
[07.10.14, 10:21:58] Agel_Nash: Зато все чанки это распухание глобального кеша который реально и так из-за DocumentListing распухает

http://hastebin.com/vebijisufu.php
class DocumentParser{
protected $hashKey = null;
public getCacheFolder(){
return MODX_BASE_PATH."assets/cache";
}
protected getHashFile($key){
return $this->getCacheFolder()."/docid_" . $key . ".pageCache.php";
}
public function checkCache($id){
$key = $id;
if ($this->config['cache_type'] == 2) {
$key = $this->getPageHash($id);
}
$this->hashKey = null;
$this->getCacheFolder($key);
......
}
public function getPageHash($id){
$hash = '';
if (!empty($_GET)) {
// Sort GET parameters so that the order of parameters on the HTTP request don't affect the generated cache ID.
$params = $GET;
ksort($params);
$hash = md5(http_build_query($params));
$tmp = $this->invokeEvent("OnWebChangePassword", array ("hash" => $hash, "id" => $id));
$hash = $tmp === false ? $id : "
".$hash;
}
return $hash;
}
public function postProcess(){
$this->hashKey;
}

}

Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.