Bridge
L'attribut #[Bridge] permet de marquer une méthode comme devant être transportée en fonction procédurale (globale).
Convention
Par convention, on définira le nom des méthodes, non en camelCase mais en snake_case afin de respecter le style procédural de WordPress et surtout de bien les différencier.
Utilisation
use Elementum\Attributes\Kernel; use Elementum\Attributes\Bridge; class MyController { #[Bridge('init')] public function on_init() { // Cette méthode sera exécutée } #[Kernel('end')] public function enqueueAssets() { elm_on_init(); } }
Fonctionnement
Le service BridgeFunction scanne les classes à la recherche de méthodes marquées avec #[Bridge] et les attache transforme ces méthodes en fonctions globales WordPress en les préfixant de elm_.
Les fonctions sont bridgées automatiquement au moment lors du hook init.
Afin de facilement s'avoir ou a été déclarer la fonction et surtout ne pas avoir de conflit, préfixez le nom de la méthode par le slug du plugin ou du thème.
Pour que ça donne elm_myplugin_on_init() par exemple. Ou elm_mytheme_on_init() pour un thème.
Cas d'usage recommandés
Bridge est particulièrement utile vous avez besoin de créer une fonction qui doit être disponible dans twig (appelable via {{ fn('elm_myplugin_on_init') }}). Ou dans d'autre Controller, etc...
Bonnes pratiques
- Préfixez le nom de la méthode par le slug du plugin ou du thème.
- Utilisez
snake_casepour le nom de la méthode.