Использование memcache в codeigniter - PullRequest
4 голосов
/ 18 октября 2011

Мне нужна библиотека, которую можно использовать как memcache с моим codeigniter. что мне нужно сделать, это извлечь меню из БД на основе роли пользователя, а затем сохранить меню в кеше. Идея состоит в том, чтобы показать точное меню другому пользователю, если у него такая же роль (без вызова БД). У меня есть отдельное представление для меню (Заголовок) и включает его на каждой моей странице (представление). Здесь следует отметить, что каждый раз, когда выполняется контроллер при запросе новой страницы (просмотр).

Я просто использовал библиотеку https://github.com/tomschlick/memcached-library, которая не работала для меня в этом сценарии. Когда я вызываю новую страницу, представление заголовка выдает ошибку для не определенной функции get для memcache (так как я получаю данные в заголовке через memcache).

Есть ли надежная библиотека или способ выполнить задачу?

Спасибо

Ответы [ 2 ]

15 голосов
/ 18 октября 2011

CodeIgniter2 имеет библиотеку кэширования, которая поддерживает Memcache https://www.codeigniter.com/user_guide/libraries/caching.html#memcached-caching

Используйте что-нибудь, что:

$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
  );
?> 
0 голосов
/ 24 октября 2011

На форуме есть сообщение с правильным методом, изложенным здесь:

http://codeigniter.com/forums/viewthread/180005/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...