Вопрос кэширования часто используемых и редко изменяемых данных продолжает волновать пользователей скриптов Webasyst, в частности Shopscript 5. В последнем обновлении фреймворка появились кое-какие-дополнительные возможности. Пока это недокументировано, хотя документация, вроде как, обещана. Кеширование данных сейчас возможно при использовании либо файлового кеша, либо Memcached. Ваш покорный слуга закоммитил еще и адаптер для XCache, но его пока нет в обновлении, распространяемом через приложение «Инсталлер».
Кеш по умолчанию выключен. Но если его включить, Shopscript 5 начнет использовать его для кеширования списка категорий, валют, списков товаров, списка страниц. Немало! Тем более, что категорий может быть очень много.
Чтобы включить кэш, надо добавить в директорию wa-config файл cache.php и указать в нем конфигурацию кэша. Конфигураций может быть много, по умолчанию используется конфигурация default. Описание конфигурации выполнено в стиле всех остальных конфигурационных файлов Webasyst: возвращается массив.
Вот так выглядит конфигурация для кэширования с помощью файловой системы:
1 2 3 4 5 6 |
<?php return array( 'default' => array( 'type' => 'file' ) ); |
На самом деле адаптеру кэша могут понадобиться еще и дополнительные параметры. У адаптера file обязательных параметров нет, есть необязательный path, который позволяет указать путь, где будут храниться файлы с кэшированными данными.
Для XCache есть обязательный параметр prefix. XCache хранит данные в shared-памяти, они доступны всем скриптам, выполняющимся на сервере, поэтому чтобы отличать «свои» данные от «чужих» нужно указать префикс для переменных. Настройка для XCache с указанием префикса xpfx_ будет выглядеть так:
1 2 3 4 5 6 7 |
<?php return array( 'default' => array( 'type' => 'xcache', 'prefix' => 'xpfx_' ) ); |
Ну, для Memcached сами в коде посмотрите, я его не испытывал. :)