WISSS / Webapp Is Simple, Stupid and Secure
Wisss est à la fois un DSL et un générateur Php. Il a pour but de génèrer toutes les couches (persistance, métier et présentation) en se basant sur le Zend Framework. Wisss est axé sur la simplicité, la souplesse, la sécurité et la performance.
Démonstration
Démonstration de la création d'un modèle avec la version SVN.
Démonstration de la génération avec la version SVN.
Présentation
Le métamodèle Wisss

Le module de génération exploite le DSL Wisss et produit le code Php correspondant.
Le métamodèle Wisss reprend un sous ensemble des diagrammes de classe d'UML pour modéliser les objets métiers et y ajoute les spécificités d'une application web. La raison de la définition d'un DSL si proche d'UML est simple : la facilité de modélisation. En effet, un des problèmes des frameworks de génération Php et des modules de génération basés sur les profils est la nécessité de connaître un langage spécifique dans le premier cas ou de connaître les règles de génération dans le second.
Le but du DSL Wisss est de ne permettre de modéliser que ce qui provoquera une génération pour avoir un modèle complètement pertinent.
Aussi retrouve-t-on la notion de classe (concrète ou abstraite), d'héritage d'attribut, de type, d'association, de cardinalité. Wisss permet pour l'instant de définir le modèle de données et a pour objectif de définir également les enchaînements d'écran.
Pour l'instant, les modèles peuvent être définis à partir de l'éditeur hierarchique généré par EMF mais à terme Wisss fournira un modeleur graphique à l'aide de GMF.
Le générateur
Le module vise une génération à 100% pour les applications simples permettant de déployer l'application en quelques minutes. Il est toutefois possible d'enrichir le modèle ou d'ajouter du "user code" pour adapter le site à vos besoins.
Le générateur produit une architecture MVC basé sur le Zend Framework. Il tente en outre de résoudre les problématiques de mapping entre base de données relationnelles et couche métier objet (ORM).
Pour chaque classe du modèle, il génère donc un Data Transfer Object et un Data Access Object (mysql uniquement pour l'instant).
Ainsi chaque objet peut être créé, sauvegardé et chargé en quelques lignes de code sans se soucier de la base de données.
Ces classes générées peuvent être complétées ou modifiées par le biais de zones de code utilisateur.
Planning
Installation
L'installation est détaillée sur la page d'installation des modules . Ce dernier nécessite Zend Framework.
Démarrage rapide
A venir.