web-dev-qa-db-fra.com

Comment désactiver complètement la mise en cache?

Je développe un site en Drupal 7 et la mise en cache ralentit considérablement mon travail. Par exemple, j'avais une fonction de thème pour un formulaire. J'étais perplexe, pourquoi ça ne marche pas. Jusqu'à ce que j'efface le cache et il a été corrigé.

Comment l'éteindre complètement?

25
user4035

Les fonctions de thème sont gérées par le registre de thème: reconstruire (ou pire, désactiver) tous les caches de votre site pour récupérer une nouvelle fonction de thème est inutile et exagéré.

Ce que vous pouvez faire est d'utiliser le module Devel pour reconstruire le registre de votre thème à chaque rechargement de page. Une fois installé, allez dans Configuration → Développement → Paramètres Devel. Là, cochez "Reconstruire le registre des thèmes à chaque chargement de page" et appuyez sur le bouton "Enregistrer la configuration". N'oubliez pas de la décocher (ou mieux encore, de désactiver complètement Devel) lorsque vous avez terminé le développement.

22
user7

Vous pouvez remplacer le backend de cache par défaut par un qui ne fait rien. Ajoutez simplement ceci à votre fichier settings.php:

if (!class_exists('DrupalFakeCache')) {
  $conf['cache_backends'][] = 'includes/cache-install.inc';
}
// Default to throwing away cache data.
$conf['cache_default_class'] = 'DrupalFakeCache';
// Rely on the DB cache for form caching - otherwise forms fail.
$conf['cache_class_cache_form'] = 'DrupalDatabaseCache';

Pour être sûr, définissez le délai d'expiration du cache sur aucun sur la page Performances.

Je l'utilise en fait dans un fichier settings.local.php qui, s'il existe, est inclus au bas de mon fichier settings.php afin que je puisse synchroniser settings.php des environnements en direct ou de transfert vers mon environnement de développement sans avoir à s'inquiéter à propos de l'utilisation des mauvais paramètres de base de données, de pousser accidentellement les paramètres de développement à vivre, etc.

settings.php:

if (file_exists(__DIR__ . '/settings.local.php')) {
  require_once __DIR__ . '/settings.local.php';
}
29
TwoD

Vous ne pouvez pas désactiver complètement la mise en cache all. Et si vous le faisiez réellement, cela ralentirait votre progression donc beaucoup plus. Considérez le temps qu'il faut pour effacer le cache, c'est à quoi ressemblerait chaque chargement d'une seule page.

Il y a tellement de hooks en cours d'exécution pour construire des informations sur les entités disponibles, les champs, les formulaires, les hooks implémentés, etc. qui ne doivent être exécutés qu'une seule fois actuellement, vous ne voulez pas empêcher cela.

Au fur et à mesure que vous vous habituez à Drupal, vous apprendrez bientôt ce qui nécessite un cache clair et vous vous familiariserez probablement avec le raccourci des menus d'administration ou drush cc all, et ce ne sera plus un problème.

10
Letharion

L'approche dans cet exemple est indépendante de la version. Le code est pour Drupal 7.

https://stackoverflow.com/questions/4436496/drupal-disable-css-cache/41776131#41776131

1
Eduardo Chongkan