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.
Contenu
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');