12/21/2010

Créer des DataType pour Phing

Author: Romain Dehaudt, Head of Revenue & Operations

Pour rappel Phing est interpréteur de script XML.

J’ai précédemment indiqué que Phing permets de rajouter ses propres taches mais ca ne suffit pas pour répondre à tous les besoins.  Par exemple si l’on veut se connecter à un web service qui nécessite une authentification et faire plusieurs actions dessus. On doit à chaque fois passer en paramètres les identifiant et se reconnecter, ce qui est loin d’être pratique…

Heureusement Phing y a pensé, il est possible de créer des DataType. Un DataType permet de définir une seule fois des accès  et y accéder depuis n’importe quelle tache.

La création d’un DataType ressemble beaucoup à celle d’une Task. Il faut créer une classe qui hérite de la classe “DataType”. On définit les paramètres acceptés par le type de la même manière que pour les Tasks sans oublier les getter/setter. Les getters sont différents car ils nécessitent un paramètre Project qui permet de retrouver la valeur référencée dans le script.

Voici le fichier de build correspondant. Il faut utiliser la balise “<typedef>” pour définir un nouveau DataType.

Pour pouvoir utiliser le DataType depuis ma Task, Il faut rajouter un attribut à la classe et rajouter non pas un setter classique mais une méthode add<Attribut> ou create<Attribut>. On utilise ces méthodes car on peut récupérer plusieurs éléments et non pas un seul comme pour les autres paramètres.

Un exemple complet sera bientôt disponible sur mon github.

gallery image