Новости разработки. Новая система кеширования

Exile

Администратор
#1
Доброго времени суток.

Новостей о новой версии не было достаточно давно, но ее разработка активно идет. Сегодня хотелось бы поделиться и дать первый взгляд на одно из многих изменений, которые будут в новой версии, а именно показать конкретные примеры кода и дать некоторые объяснения по нашей новой системе кеширования.

Новая система кеширования основана (как и большинство остальных вещей в новой версии движка) не на самодельном велосипеде, а на одной из популярных библиотек - Doctrine Cache. Используя ее, у нас есть возможность реализовать поддержку большего количества систем кеширования, чем это у нас было реализовано ранее (файловый кеш, APC, CacheCache, Couchbase, Memcache, Memcached, Redis, Riak, SQLite3, Void, XCache, ZendData и т.п.). Большое преимущество для разработчиков и тех пользователей, которые пишут моды - универсальность. Какой бы тип кеширования не был указан в конфигурации - использование кеша и его поведение будет всегда одинаковым.

Ну а теперь непосредственно к примерам. Для начала, мы подключаем компонент DI (Dependency Injection, который нужен нам для возможности подгрузки переписанных модулей движка) и само кеширование:
PHP:
/** @var \TorrentPier\Di $di */
$di = \TorrentPier\Di::getInstance();

/** @var \TorrentPier\Cache\Adapter $cache */
$cache = $di->cache;
После этого, мы можем использовать сам кеш:
PHP:
if (!$cache->has('secret')) {
  $data = 'some data';
  $cache->set('secret', $data, 60);
}

$cached_data = $cache->get('secret');
В данном примере мы проверяем наличие кеша secret, в случае если его нет - мы устанавливаем его со временем жизни в 60 секунд, ну а после этого присваиваем переменной значение кеша (попутно получая его). Синтаксис крайне простой и незамысловатый, а в случае использования IDE для написания кода, например PHPstorm от JetBrains, у вас будут еще и подсказки по возможным методам:

Снимок экрана 2016-05-12 в 1.16.58.png

Разумеется это не все возможности новой системы кеширования. Она еще будет дополняться, например, появится возможность установки значения кеша с использованием callback-функции и т.п., а значит в приведенном синтаксисе возможен ряд изменений. Но некоторое представление об уровне изменений в движке вы можете получить. А кому интересно больше - вот коммит на замену старой системы кеширования на новую, с объемом изменений вы можете ознакомиться самостоятельно:

Please Login or Register to view hidden text.



Животрепещущий вопрос большинства - когда же выйдет новая версия? Тогда, когда будет завершен процесс переноса движка на "новые рельсы". Очень надеемся, что это произойдет в ближайшее время. А пока что интересующиеся могут следить за ходом разработки

Please Login or Register to view hidden text.

.

Спасибо за внимание.
 

Kryl

Пользователь
#2
Стоит ли сейчас уже кеш новый ставить на движок ?
Изменений сильно много , даже по одному кешу .
Дальше еще больше будет . Так вот вопрос :
Сможет ли простой пользователь сам переехать на новую ревизию или же придется обращаться за платными услугами ?
Сам двиг поправить наверное проблем не будет , а вот моды :)
 

Johanisce

Пользователь
#3
Стоит ли сейчас уже кеш новый ставить на движок ?
Изменений сильно много , даже по одному кешу .
Дальше еще больше будет . Так вот вопрос :
Сможет ли простой пользователь сам переехать на новую ревизию или же придется обращаться за платными услугами ?
Сам двиг поправить наверное проблем не будет , а вот моды :)
Я вот недавно решил сделать треккер. Посмотрел форум и решил ожидать выхода новой версии.
 

Diolektor

Разработчик
#4
Сможет ли простой пользователь сам переехать на новую ревизию
Обратную совместимость постараемся удержать. Но она скорее будет специфической. :sneaky:
или же придется обращаться за платными услугами ?
Таких целей точно никто не ставил. :)
Сам двиг поправить наверное проблем не будет , а вот моды :)
А вот цель прекратить вносить изменения в код движка для внедрения модов была.
 
Последнее редактирование:

Exile

Администратор
#5
Стоит ли сейчас уже кеш новый ставить на движок ?
Нет, ставить отдельно не нужно, да у меня уже и большие сомнения в том что его сейчас реально "поставить". Время, когда была возможность "выдрать" капчу и поставить на старые версии движка, прошло. Обновление на версию 2.2 как-нибудь предусмотрим, но все модификации к движку в дальнейшем не будут рассчитаны на ручное внесение изменений в файлы движка - это позволит обновлять движок без потери модификаций, простой заменой файлов.