Использование memcache в codeigniter
Мне нужна библиотека, которую можно использовать в качестве memcache с моим codeigniter. что мне нужно сделать, так это извлечь меню из БД на основе роли пользователя, а затем сохранить меню в кэше. Идея состоит в том, чтобы показать точное меню другому пользователю, если он имеет ту же роль(без вызова DB). У меня есть отдельный вид для меню (заголовок) и включает его на каждой моей странице(просмотр). Здесь следует отметить, что каждый раз, когда контроллер выполняется при запросе на новую страницу(вид).
Я только что использовал библиотеку https://github.com/tomschlick/memcached-library который не работал для меня в этом сценарии. Когда я вызываю новую страницу, представление заголовка выдает ошибку для не определенной функции get для memcache (поскольку я получаю данные в заголовке через memcache).
Существует ли какая-либо надежная библиотека или способ выполнить эту задачу?
Спасибо
2 ответов:
CodeIgniter2 имеет библиотеку кэширования, которая поддерживает Memcache http://ellislab.com/codeigniter/user_guide/libraries/caching.html#memcached
Используйте что-нибудь лилке, что:
$role_id = 2; $menu = $foo = $this->cache->get('menu_'.$role_id); if (!$menu){ $menu_data = $this->my_model->loadMenu($role_id); $menu = $this->load->view('menu_tpl', $menu_data, TRUE); $this->cache->save('menu_'.$role_id, $menu); }Образец memcache.php с форума CI
<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); $config['memcached'] = array( 'hostname' => '127.0.0.1', 'port' => 11211, 'weight' => 1 ); ?>
Comments