web-dev-qa-db-fra.com

Où stocker le nom d'une table personnalisée?

J'étends l'objet $wpdb avec les propriétés de mes tables personnalisées.

function setup_wpdb()
{
    global $wpdb;

    // Create properties for custom tables
    $wpdb->my_plugin_table1 = $wpdb->prefix.'my_plugin_table1';
    $wpdb->my_plugin_table2 = $wpdb->prefix.'my_plugin_table2';
}

Est-ce une bonne pratique? Je suppose que tant que les propriétés sont préfixées avec le nom du plugin, ça devrait aller. Définir une constante peut aussi marcher. Que préférez-vous et pourquoi? Merci.

1
Geert

Aussi longtemps que...

  1. Vous utilisez $wpdb->prefix (ou $wpdb->base_prefix) pour préfixer la table
  2. Votre nom de table est quelque part public et facilement disponible pour que d'autres plugins, thèmes et utilisateurs finaux puissent l'utiliser et l'étendre.

Je dirais que définir la table en tant que propriété sur $wpdb ou utiliser une constante est acceptable. Si vous choisissez d'utiliser $wpdb, sachez qu'un autre plugin (ou thème ou autre) peut simplement écraser votre propriété de la même manière que vous la définissez. Pour cette raison, il est un peu plus "sûr" d'utiliser quelque chose comme une constante.

En outre, demandez toujours avec soin si vous devez ou non ajouter un tableau.

J'ai tendance à utiliser des constantes, mais si je fais quelque chose comme créer une table termmeta, j'utiliserais une propriété $wpdb.

2
chrisguitarguy