Aller au contenu principal
Version: 26.0.9.0

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

app/Controller/MyController.php
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.

Préfixer les fonctions

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_case pour le nom de la méthode.