28 votes

Comment étendre le playframework ?

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?

41voto

niels Points 4445

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 :

  1. Écrire une classe qui étend la classe PlayPlugin et remplacer certaines de ses méthodes, par exemple appelé myPackage.MyPlugin.
  2. 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 comme 1003: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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X