Question

Je dois avoir la bibliothèque qui peut être utilisé comme memcache avec mon CodeIgniter. ce que je dois faire est d'extraire menus de DB sur la base du rôle de l'utilisateur, puis stocker le menu dans le cache. L'idée est de montrer le menu exact à un autre utilisateur si elle a le même rôle (sans appeler DB). J'ai une vue séparée pour les menus (en-tête) et Includes sur chacun de ma page (vue). Voici une chose à noter est à chaque fois qu'un contrôleur est exécuté lors de la demande à une nouvelle page (vue).

Je viens d'utiliser une bibliothèque https://github.com/tomschlick/memcached-library qui n'a pas fonctionné pour moi dans ce scénario. la vue d'en-tête renvoie une erreur pour la fonction get non définie pour memcache (comme je suis d'obtenir des données en-tête par memcache) Comme je l'appelle la nouvelle page.

Y at-il solide ou bibliothèque façon d'accomplir la tâche?

Merci

Était-ce utile?

La solution

CodeIgniter2 a la mise en cache bibliothèque, qui prend en charge Memcache https: // www .codeigniter.com / User_Guide / bibliothèques / caching.html # memcached-cache

Utilisez lilke quelque chose que:

$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 échantillon du forum CI

<?php
  if (!defined('BASEPATH')) exit('No direct script access allowed');

  $config['memcached'] = array(
          'hostname' => '127.0.0.1',
          'port'        => 11211,
          'weight'    => 1
  );
?> 

Autres conseils

Il y a un poste de forum avec la bonne méthode décrite ici:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top