web-dev-qa-db-fra.com

Mise à jour de méthodes obsolètes

Je mets à jour un ancien plug-in Joomla personnalisé, et une ligne obsolète indique JResponse::allowCache(false); - quel est le "bon" moyen de gérer cela pour la compatibilité Joomla 3.x?

En outre, il pourrait peut-être s'agir d'une question distincte, mais existe-t-il un moyen de définir manuellement les paires clé => valeur dans le cache Joomla? Par exemple, ce plugin effectue des recherches pour les États américains. Donc, si elle affiche beaucoup d'informations, elle doit consulter la base de données à la recherche de l'abréviation d'état, lorsque nous pourrions simplement mettre en cache cette réponse.

5
user101289

JResponse::allowCache(false); remplacement est

JFactory::getApplication()->allowCache(false);

Mettre en place key => value éléments de cache:

// Get cache instance
$cache = JFactory::getCache();

// Store in cache
$cacheItemStored = $cache->store($value, $key, $group = null); // boolean

// Get from cache
$value = $cache->get($key, $group = null);

Comme vous pouvez le voir, vous pouvez définir facultatif $group. Ceci est utile pour nettoyer tout le cache dans un groupe spécifique ou pas dans un groupe spécifique.

Par exemple:

$cache->clean('groupName'); // will clean all cache IN "groupName" group
$cache->clean('groupName', 'notgroup'); // will clean all cache NOT IN "groupName" group
5
Rene Korss

Désolé de poser cette question plus ancienne, mais la réponse acceptée n'est pas totalement correcte. La plupart des éléments de JResponse sont remplacés par un appel de méthode portant le même nom dans les instances JApplicationWeb (dont les classes d'applications Web CMS). Voir https://api.joomla.org/cms-3/classes/JResponse.html pour plus de détails.

Donc, JResponse::allowCache(false); est remplacé par JFactory::getApplication()->allowCache(false);.

4
Michael