Initialisation - bootstrap - d’un plugin

Afin d’initialiser votre plugin à partir de Elgg 3.0, vous pouvez utiliser une classe bootstrap. Cette classe doit implémenter l’interface abstraite \Elgg\PluginBootstrapInterface, mais il est recommandé d’étendre la classe abstraite \Elgg\PluginBootstrap, car certaines préparations ont déjà été faites.

Si vous n’avez besoin que d’un sous-ensemble limité des fonctions d’initialisation, votre classe peut également étendre la classe \Elgg\DefaultPluginBootstrap, cette classe a déjà implémenté toutes les fonctions de \Elgg\PluginBootstrapInterface. Ainsi, vous pouvez surcharger uniquement les fonctions dont vous avez besoin.

Enregistrement de la classe « bootstrap » d’initialisation

Vous devez enregistrer votre classe d’initialisation dans le fichier elgg-plugin.php.

return [
        // Bootstrap must implement \Elgg\PluginBootstrapInterface
        'bootstrap' => MyPluginBootstrap::class,
];

Fonctions disponibles

->load()

Exécuté lors de l’événement plugins_load, system

Permet au plugin de requérir des fichiers supplémentaires, ainsi que de configurer des services avant le démarrage du plugin.

->boot()

Exécuté lors de l’événement plugins_boot:before, system

Permet au plugin d’enregistrer des gestionnaires pour les événements plugins_boot, system et init, system, ainsi que de mettre en œuvre la logique de démarrage.

->init()

Exécuté lors de l’événement init, system

Permet au plugin d’implémenter la logique métier et d’enregistrer tous les autres gestionnaires.

->ready()

Exécuté lors de l’événement ready, system

Permet au plugin d’implémenter sa logique après que tous les plugins ont été initialisés.

->shutdown()

Exécuté lors de l’événement shutdown, system

Permet au plugin d’implémenter sa logique pendant l’arrêt.

->activate()

Exécuté lorsque le plugin est activé, après l’événement activate, plugin.

->deactivate()

Exécuté lorsque le plugin est désactivé, après l’événement deactivate, plugin.

->upgrade()

Enregistré en tant que gestionnaire pour l’événement upgrade, system

Permet au plugin d’implémenter sa logique pendant la mise à niveau du système.

Fonctions d’assistance disponibles

Ceci suppose que votre classe bootstrap étend la classe abstraite \Elgg\PluginBootstrap ou la classe \Elgg\DefaultPluginBootstrap.

->elgg()

Renvoie le conteneur DI public de Elgg. Cela peut être utile si vous souhaitez enregistrer des écouteurs d’événements.

$events = $this->elgg()->events;
$events->registerHandler('create:after', 'object', MyCustomObjectHandler::class);

->plugin()

Renvoie l’entité du plugin à laquelle cette initialisation est liée. Il est ainsi plus facile d’obtenir des paramètres de plugin.

$plugin = $this->plugin();
$my_setting = $plugin->getSetting('my_setting');