04 — Utiliser les plugins et écrire une première extension
Installer des plugins avec GPM/Admin, comprendre les événements et créer une petite extension sans modifier le cœur.
Avant de commencer
- Connaître les bases PHP.
- Avoir un Grav 2 fonctionnel.
Installer un plugin existant
Grav permet l'installation par GPM, manuellement ou via l'administration. Commence par un plugin simple et lis sa documentation avant activation.
Les plugins vivent dans user/plugins/.
bin/gpm install NOM_DU_PLUGIN - Le plugin apparaît dans user/plugins/.
- Je sais le désactiver ou le retirer.
Comprendre les événements
Les plugins Grav s'abonnent aux événements du cycle de vie. C'est le même principe général que les hooks WordPress ou les pipelines SPIP : intervenir sans modifier le cœur.
public static function getSubscribedEvents(): array
{
return [
'onPluginsInitialized' => ['onPluginsInitialized', 0],
];
} - Je comprends qu'un plugin réagit à des événements et reste séparé du cœur.
Créer un plugin d'apprentissage
Crée un plugin minuscule qui ajoute une information non critique. Utilise les outils DevTools de Grav si disponibles pour générer un squelette compatible avec ta version.
user/plugins/mon-plugin/
├── mon-plugin.php
├── mon-plugin.yaml
└── blueprints.yaml - Mon plugin peut être activé et désactivé sans toucher au cœur.
Comprendre comment PTM pourrait s'y brancher
Un futur PTM Grav devrait inventorier les plugins actifs, analyser les pages rendues, utiliser ptm-rules et afficher les résultats dans l'administration.
Le moteur de règles resterait commun ; seul l'adaptateur Grav serait spécifique.
ptm-rules
↓
PTM Grav adapter
↓
plugins + pages + HTML rendu - Je peux distinguer le code commun PTM du code spécifique à Grav.
🧯 Erreurs fréquentes
GPM refuse l'installation
Cause probable : Compatibilité, dépendance ou environnement PHP
Correctif : Lire le message GPM et vérifier compatibilité Grav 2 et prérequis du plugin.
Un événement ne se déclenche pas
Cause probable : Plugin inactif, mauvais événement ou déclaration incorrecte
Correctif : Vérifier activation, getSubscribedEvents() et la documentation Event Hooks.
Sources de vérification
Ces liens servent à recontrôler le tuto quand l'outil ou l'hébergeur évolue.
Historique de la fiche
L'historique détaillé reste aussi disponible dans Git.