Le rôle de ce fichier est de pouvoir charger des constantes avant même que le module soit chargé afin de partager avec d'autres modules certaines valeurs et ceci même si le module est désactivé.
Ce fonctionnement est spécial et ce fichier ne doit contenir que le minimum d'informations qui devront si possible ne pas changer à chaque version du module. (Sinon tout l'intérêt de ce fichier est perdu.)
Généralement la classe contenue dans ce fichier permet de définir des noms de permissions ou de tables.
Exemple tiré du plugin blogroll de la distribution :
<?php
// aucun espace de nom PHP n'est déclaré
// Cette classe sera accessible à tous les autres modules
class initBlogroll
{
// On définit le nom de la permission liée à blogroll
public const PERMISSION_BLOGROLL = 'blogroll';
// On définit le nom de la table de base de données de blogroll
public const LINK_TABLE_NAME = 'link';
}
Il est recommandé de garder des noms de classe et de constantes dans le style de l'exemple ci-dessus.
Cette classe va permettre par exemple au plugin blogroll lui même de définir ses permissions dans son fichier de définition :
<?php
$this->registerModule(
// ...
[
'permissions' => dcCore::app()->auth->makePermissions([
initBlogroll::PERMISSION_BLOGROLL,
]),
'type' => 'plugin',
]
);
Le contenu de ce document a été écrit suivant le code de la version 2.27 de Dotclear.
La discussion continue ailleurs
URL de rétrolien : https://dotclear.watch/trackback/19