web-dev-qa-db-fra.com

Namespaced action et tags de filtre

Je suis en train de mettre à niveau plusieurs de mes plugins pour qu'ils utilisent PHP espaces de noms, afin que les fonctions, les classes, les constantes, etc. soient toutes correctement espacées.

<?php
namespace my\plugin;

function init() { 
  ... 
}

//  Calls \my\plugin\init();
add_action('init', __NAMESPACE__.'\init');

À plusieurs endroits, mon plugin appelle do_action ou apply_filters afin que les autres plugins puissent modifier son comportement. Si ce sont des actions ou des filtres uniques à mon plugin, il me semble qu’ils devraient également être espacés, comme ceci:

do_action('\my\plugin\stuff');
$value = apply_filters('\my\plugin\value', $value);

Mais je ne vois personne d'autre faire cela. Mis à part les espaces de noms nécessitant PHP 5.3, existe-t-il une bonne raison de ne pas le faire? Les caractères \ vont-ils se briser sur certaines plates-formes ou avec des paramètres inhabituels?

1
Marcus Downing

Il n’ya rien de mal à cela techniquement, mais il est difficile de taper des barres obliques inverses sur certaines dispositions de clavier. Sur un clavier allemand, par exemple, vous devez frapper à droite AltGr clé plus \ en même temps.

German keyboard

Ce n’est pas facile à taper (et l’une des raisons pour lesquelles j’utilise un clavier anglais). Utilisez des points, des deux points ou des traits de soulignement pour nommer vos crochets. Ils ne sont de toute façon pas liés à la syntaxe PHP.

2
fuxia