14-06-2011, 11:31 AM
(Modification du message : 14-06-2011, 12:26 PM par Sephi-Chan.)
Ça me paraît bizarre dans la vraie vie de tester la présence de APC. Après tout, si c'est un prérequis de l'application, tu peux considèrer qu'il est là.
APC ne propose-t-il pas un système plus sympa pour insérer des données à la volée dans le cache lorsqu'on cherche à récupérer un élément inexistant ? Qui va chercher les données en cache et s'il ne les trouve pas, renvoie quelque chose et l'insère dans le cache ?
Avec Rails, voilà ce qu'on a (cf. l'API ActiveSupport::Cache::Store).
APC ne propose-t-il pas un système plus sympa pour insérer des données à la volée dans le cache lorsqu'on cherche à récupérer un élément inexistant ? Qui va chercher les données en cache et s'il ne les trouve pas, renvoie quelque chose et l'insère dans le cache ?
Avec Rails, voilà ce qu'on a (cf. l'API ActiveSupport::Cache::Store).
# Utilisation basique
fruit = Rails.cache.fetch("fruit") # => nil
fruit = Rails.cache.write("fruit", "Kiwi") # => true
fruit = Rails.cache.fetch("fruit") # => "Kiwi"
# S'il n'y a pas de résultat, on exécute le block et on stocke la valeur.
cities = Rails.cache.fetch("cities") { City.all }
# Rails peut aussi se débrouiller pour générer la clé de cache.
favourite_cities = Rails.cache.fetch([ current_user, :favourite_cities ], current_user.favourite_cities)