logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement
05/07/2025, by Ivan

Cache max-age = dépendances temporelles

Cache max-age est analogue à la directive HTTP max-age dans l’en-tête Cache-Control.

Pourquoi ?

Le max-age du cache fournit un moyen déclaratif de créer des caches dépendants du temps.

Certaines données ne sont valides que pour une période limitée ; dans ce cas, vous souhaitez spécifier un âge maximal approprié. Cependant, dans le cas du noyau Drupal 8, nous n’avons pas de données qui ne sont valides que pour une période limitée ; nous mettons généralement en cache de façon permanente (voir ci-dessous) et nous comptons entièrement sur les tags de cache pour l’invalidation.

Quel âge ?

Le max-age du cache est un entier positif qui exprime un nombre de secondes.

Le max-age du cache est fourni sous forme d’entier individuel, car un élément de cache ne peut logiquement avoir qu’un seul âge maximal.

Exemples :

  • 60 signifie une mise en cache pendant 60 secondes
  • 100 signifie une mise en cache pendant 100 secondes
  • 0 signifie une mise en cache pendant zéro seconde, c’est-à-dire pas de mise en cache
  • \Drupal\Core\Cache\Cache::PERMANENT signifie que le cache est permanent, c’est-à-dire qu’il ne sera invalidé que par les tags de cache. (En d’autres termes : ∞ ou un nombre infini de secondes.)

Donc, si vous souhaitez empêcher la mise en cache d’un bloc rendu, vous devez lui assigner max-age = 0.

Exemple pour la plupart des tableaux de rendu :

$build['#cache']['max-age'] = 0;

Exemple dans une fonction :

\Drupal::cache()->set('my_cache_item', $school_list, REQUEST_TIME + (86400));

Si vous souhaitez modifier le max-age d’un bloc à 0, vous devez implémenter la méthode getCacheMaxAge.

Limitations du max-age

Malheureusement, max-age ne fonctionne pas pour les utilisateurs anonymes et le module Page Cache du noyau Drupal. Par exemple, consultez ces problèmes :

Tant que ces (et possiblement d’autres) problèmes ne seront pas résolus, gardez à l’esprit que définir un max-age sur un tableau de rendu inclus dans une page n’est pas suffisant pour que les utilisateurs anonymes voient une nouvelle version après expiration du max-age. En même temps, le module fourni Cache Control Override tente d’atténuer ces problèmes. Vous pouvez aussi avoir de la chance en définissant un tag de cache personnalisé sur les pages avec un contenu dépendant du temps, puis en invalidant ces tags manuellement via hook_cron(). Bonne chance !