Extension phare · open source

Bext for WordPress

WordPress qui coopère avec le cache, au lieu de le subir. Purge chirurgicale à chaque modification, taming d'Action Scheduler, en-têtes sûrs, tableau de bord opérateur et pont SDK — pour les sites servis par bext.

GPL-2.0PHP 7.4+WordPress 5.8+MultisiteWooCommercebext cloudMises à jour autoWP-CLI
01Le problème qu'il supprime

Fini le choix entre « rapide » et « à jour ».

Derrière un cache classique, il faut choisir : un TTL long (rapide mais périmé après une édition) ou un TTL court (frais mais chaque premier visiteur paie un rendu PHP complet — mesuré à ~4,4 s sur un vrai site WooCommerce). Bext supprime ce compromis.

Cache classique

  • TTL long → contenu périmé après chaque modification
  • TTL court → rendu PHP complet à chaque cycle
  • Action Scheduler s'auto-appelle (5–21 s) et sature PHP-FPM
  • Risque de mettre en cache une page connectée

Avec Bext

  • TTL long ET frais : WordPress purge les bonnes URL à l'édition
  • Purge ciblée et non bloquante (une seule requête)
  • Runner Action Scheduler maîtrisé → le cron système draine la file
  • Connecté / panier / commentaire → jamais mis en cache anonyme
02Les modules

Huit modules, activables un par un

Chaque module se désactive d'un cran (constante, réglage ou filtre) et ne fait rien si le site n'est pas servi par bext.

Cache coopératif

À chaque publication, bext-wp calcule les URL impactées (permalien, accueil, archives, flux, sitemap) et les purge en une seule requête non bloquante. Le cache reste long, le contenu reste frais.

Taming d'Action Scheduler

Désactive le runner loopback admin-ajax (mesuré à 5–21 s) et laisse le cron système vider la file. Fini les auto-requêtes qui saturent PHP-FPM.

En-têtes sûrs

Les réponses connectées / panier / commentaire reçoivent Cache-Control: private, no-store — jamais mises en cache pour les visiteurs anonymes.

Tableau de bord

Une page « Bext » dans l'admin + une pastille dans la barre : statut, journal de purge, file Action Scheduler, contrôles de santé, accessibilité du serveur.

Réglages & bext cloud

Tout se configure depuis l'admin (mode local ou cloud, endpoint, jeton, modules) — sans toucher à wp-config. Mode cloud pour WordPress derrière une edge bext distante.

Pont SDK

Optionnel : wp_mail via l'envoi e-mail géré de bext et des jobs d'arrière-plan sur une file bext. Tout échoue en sécurité (repli vers WordPress).

Multisite

Réglages réseau (défauts + verrouillage), tableau de bord multi-sites avec purge par site ou globale, et clés de cache correctes en sous-répertoire.

WP-CLI

wp bext status · wp bext purge [chemin] · wp bext doctor — pour scripter purges et diagnostics depuis le terminal ou la CI.

03Deux façons de connecter

Auto (local)

bext sert WordPress sur la même machine. Tout passe par le loopback 127.0.0.1:80 — aucune clé, aucun accès disque (compatible open_basedir). bext est détecté via le paramètre FastCGI BEXT_SERVER.

Cloud (distant)

WordPress dialogue avec une edge bext distante (bext cloud) via un jeton porteur. Configurez l'endpoint et le jeton dans Bext → Réglages — idéal pour un WordPress hébergé ailleurs, derrière le cache bext.

04Installation

Deux minutes, deux façons

Extension classique

# dans wp-content/plugins/
git clone github.com/webdesign29/bext-wp.git
# puis activez « Bext for WordPress » dans l'admin

Must-use, sur toute une flotte

# open_basedir empêche un lien symbolique partagé →
# le script copie l'extension dans chaque site
sudo bin/deploy-fleet.sh --site=exemple.com # test
sudo bin/deploy-fleet.sh # tous
1

Installez

En extension classique, ou en must-use sur toute une flotte via bin/deploy-fleet.sh (copie par site, compatible open_basedir).

2

Détection auto

bext-wp détecte qu'il est servi par bext (paramètre FastCGI BEXT_SERVER) et n'agit que dans ce cas. Rien à brancher.

3

Configurez

Choisissez le mode (local / cloud) et activez les modules depuis Bext → Réglages. Ou verrouillez tout via des constantes wp-config.

4

Profitez

Modifiez un article : les bonnes URL sont purgées en arrière-plan. Le cache reste long, votre site reste frais et rapide.

05En ligne de commande

WP-CLI

wp bext status # statut de l'intégration
wp bext purge # purge tout le cache du site
wp bext purge /blog/bonjour/ # purge une URL (argument positionnel)
wp bext doctor # lance les contrôles de santé

Sur multisite, purgez tout le réseau : for url in $(wp site list --field=url); do wp --url="$url" bext purge; done

Open source. Testé en CI. Prêt à l'emploi.

GPL-2.0, PHP 7.4 → 8.3, documentation et wiki complets. Déployez Bext sur un site servi par bext et oubliez le compromis cache.

Code source Documentation