Générateur UML2.1 vers Php
Générateur PHP depuis le méta-modèle UML2.
Ce module de génération à pour objectif la production d'une application PHP 5 utilisant le Framework PEAR et le moteur de templates smarty.
Démonstration
Génération d'une application PHP5
Cette démonstration montre comment générer une application PHP 5 à partir d'un modèle UML2.
Utilisation du code généré
Cette démonstration illustre comment utiliser le code généré en implémentant les fonctionnalités suivantes :
Modification du modèle et regénération du code.
Voici la démonstration de la génération incrémentale du module UML2 vers PHP. Cette fonctionnalité est illustré en ajoutant un attribut 'nickName' à la classe 'Author' .
L'architecture cible
Ce module génère une application PHP 5 structurée en couches :
La couche DAO avec le framework PEAR DB
La couche d'accès aux données est composée de classes permettant le dialogue avec une base de données. Tous les SGBD supportés par le framework PEAR sont compatibles avec l'applicaton générée. Une classe DAO est créée pour chaque classe métier du modèle.
Le module de génération gère :
Les objets métiers
Les objets métiers sont de simples classes possédant des attributs et les accesseurs/modificateurs correspondant. Afin de faciliter le développement de l'application des classes proxies gérant le chargement tardif (lazy loading) des associations sont générées. Ce mécanisme est masqué à l'aide du Pattern Factory. Chaque classe métier a une classe Factory correspondante. Il est nécessaire d'utiliser les classes Factory pour profiter du chargement tardif des relations.
Note : Le chargement tardif et la mise à jour en cascade peut poser problème. Si vous sauvegardez un objet métier en ayant modifié une de ces associations, les autres références de cet objet ou les références inverse à l'association pour lesquelles la relation à déjà été chargée ne sont pas mise à jour (ce qui est tout à fait normal).
La couche Présentation avec SMARTY et le modèle MVC2
La couche Présentation de l'application générée présente les caractéristiques suivantes :
Fonctionnement et utilisation du module.
Modélisation UML
Le générateur permet l'exploitation de modèle UML 2.1 enrichi d'un certain nombre de stéréotypes.
Vous pouvez utiliser différents modeleurs de manière conjointe à ce générateur : Topcased, Papyrus ou encore le projet UML2 Tools de la fondation Eclipse.
Le modèle source
Le module de génération utilise les classes du modèle en entrée.
Nous identifions deux types de classes :
Artefacts générés à partir d'une classe métier (stéréotype Entity).
Artfecats générés à partir d'une classe écran (stéréotype Screen).
Autres artfecats générés.
Planning
Installation
L'installation est détaillée sur la page d'installation des modules . L'application générée nécessite le Framework PEAR et le moteur de templates SMARTY.
Démarrage rapide
Une fois le module installé vous pouvez rapidement tester son bon fonctionnement. Créez un nouveau projet (projet vide ou projet PHP si votre installation d'Eclipse dispose de PDT ou PHPEclipse).
Choisissez le menu File puis New et Other....
Dans la rubrique Acceleo choisissez Module Launcher.
La liste des modules installés est alors disponible. Choissisez le module "UML2 to Php" puis cliquez sur suivant. Remplissez alors les différents champs demandés par l'assistant.
Une fois l'assistant terminé, ce dernier crée un fichier .chain qui permet de lancer la génération et initialise un modèle Ecore d'exemple.
Un simple clic droit sur le fichier .chain suivi de Launch lancera la génération, vous retrouverez les fichiers générés dans les répertoires de sorties que vous avez choisi dans l'assistant.
Contribuez !
Si vous souhaitez modifier ou compléter les templates de génération, un fichier Team Project Set est à votre disposition, il permet d'importer les sources du module directement depuis le SVN.
Fichier Team Project Set pour le module PHPLa page modification des sources d'un module explique comment utiliser ce fichier.