Parfois, il est nécessaire d'étendre un framework. Parfois, il est nécessaire de se connecter au cycle de vie de la requête/réponse, par exemple pour un binding de paramètres ou pour écrire un module de sécurité. Comment cela pourrait-il être fait dans le playframework 1.x?
Réponse
Trop de publicités?Il existe deux façons d'étendre play 1.x. Tout d'abord, vous pouvez écrire votre propre module. Cela est décrit en détail ici. Cela est utile si vous souhaitez fournir une bibliothèque telle que iText ou fournir un mécanisme d'authentification spécial.
La deuxième façon est d'écrire un PlayPlugin
. Cela est souvent fait dans des modules mais ce n'est pas une condition nécessaire. Pour écrire un PlayPlugin
, il faut suivre deux étapes :
- Écrire une classe qui étend la classe
PlayPlugin
et remplacer certaines de ses méthodes, par exemple appelémyPackage.MyPlugin
. - Enregistrer votre plugin. Cela se fait en créant un fichier nommé
play.plugins
et en le plaçant dans le classpath. Le fichier doit contenir une ligne comme1003:myPackage.MyPlugin
.
Le numéro définit l'ordre dans lequel les plugins sont appelés. Je recommande d'utiliser des identifiants > 1000. Si vous voulez le charger avant un plugin de framework, regardez ici (Les identifiants sont valides depuis 1.1.1).
C'est tout. Pour avoir une idée de ce que vous pouvez faire avec un Plugin, consultez la javadoc. Vous pouvez vous connecter à :
- Le cycle de la requête/réponse
- Le processus de liaison
- Le démarrage/l'arrêt de l'application
- Le chargement de classes
Malheureusement, la documentation javadoc est minimale, mais n'hésitez pas à consulter le code du playframework lui-même. C'est facile à comprendre et vous donne de bonnes idées.