Overview
Artifact ID: | 950b7a2912a837bb6cb7c35834c8f6b4a7c70aa0 |
---|---|
Page Name: | Plugins/Evolutions |
Date: | 2020-01-05 19:31:31 |
Original User: | bohwaz |
Mimetype: | text/x-markdown |
Next | c4f9f4d002b86636e881f9ed21da0e488b68cfbf |
Content
Évolutions
Ici sont recensés les changements de l'API développeur pour les plugins.
Changements dans la version 0.9.0
- les identifiants des plugins (également utilisé par le nom de répertoire ou d'archive tar.gz) ne peuvent plus contenir que des lettres minuscules, des chiffres et des underscores. Les points, tirets et lettres majuscules ne sont plus possibles.
- les méthodes de callback des signaux doivent obligatoirement commencer par le namespace
Garradin\Plugin\NomDuPlugin
(où NomDuPlugin correspond à l'identifiant du plugin), Garradin utilisera l'auto-chargement des classes (selon PSR-0) pour appeler la méthode. Par exemple en enregistrant un callback surGarradin\Plugin\Caisse\Signaux::addMember
, Garradin chargera le fichierlib/Signaux.php
du plugincaisse
et appellera la méthode statiqueaddMember
de la classeSignaux
située dans le namespaceGarradin\Plugin\Caisse
. - le fichier
signals.php
à la racine du plugin ne sera plus inclus lors de l'appel d'un signal enregistré par le plugin - ajout d'un signal
email.envoi
- dans les templates, le namespace par défaut est
Garradin
, il est ainsi utile de supprimer toutes les références à\\Garradin' dans les fichiers
.tpl`
Si l'identifiant de votre plugin contenait des lettres majuscules, des points ou tirets, il faut le renommer et le réinstaller. Il est conseillé d'inclure le code suivant dans le fichier install.php pour supprimer l'ancien plugin :
try {
$old_plugin = new \Garradin\Plugin('Ancien.nom-de-plugin');
$old_plugin->uninstall();
} catch (\Garradin\UserException $e) {
// rien à faire, l'ancien plugin n'était pas installé
}
Si le callback d'un signal de votre plugin n'était pas dans le namespace Garradin\Plugin\NomDuPlugin
il va vous falloir sortir une mise à jour du plugin qui appellera à nouveau $plugin->registerSignal
(dans le fichier upgrade.php
). Le nouveau callback remplacera le callback existant si le signal n'a pas changé de nom.
Changements dans la version 0.8.0
Voir la page détaillée