Générez la structure MySQL et le code de vos classes PHP en quelques clics !

Ce site web est destiné aux développeurs PHP/MySQL qui en ont marre de passer des heures à faire la même chose : créer des tables, créer des classes, créer des getters, créer des setters, ... Une tâche qui pourrait être automatisée à partir de simples définitions. Leur précieuse énergie doit être utilisée pour réfléchir, débattre, imaginer, et bien d'autres choses encore. Le travail barbant doit être délégué aux machines !

1) Définir

2) Générer

  • Préfixe pour les tables de données :

Déjà 2375 générations

3) Résultat

Syntaxe

Éléments

Scalaires

|scalar,type,"description",default|

Exemples :

  • |power,int|
  • |name,string|

Le type peut être : bool, int, float, string, date, datetime, time

La description et la valeur par défaut sont optionnelles

Valeur par défaut additionnelle pour les scalaires date et datetime : now

Limitation des types int et string : |phone,string/12|

Objets

[object,"description"]

Exemples :

  • [car]
  • [person]

La description est optionnelle

Possession

[object1: object2, |scalar,type|]

Exemples :

  • [car: |power,int|]
  • [person: |name,string|]

Les multiplicités

Un et un seul
[object1: object2]

Exemple : [person: car]

Un ou zéro
[object1: ?object2]

Exemple : [person: ?car]

Plusieurs
[object1: *object2]

Exemple : [person: *car]

Les multiplicités peuvent aussi s'appliquer aux scalaires

Fonctionnalités spéciales

Identifiant
[object1: #object2]

Exemple : [house: #street, #|number,int|]

Même un objet peut devenir un id

Liste d'éléments
[object1: -object2]

Exemples :

  • [school:-student]
  • [garage:-vehicle]

Les objets seront utilisables dans un foreach

Ceci peut également s'appliquer aux scalaires

Héritage

[object1<-object2]

Exemples :

  • [vehicle<-car]
  • [animal<-human]

Associations

Simple

[object1:{association}object2]

Exemple :

  • [person:{favorite}car]
  • [person:?{mother}person,?{father}person]

Correspondance

[object: ?{name,num}object, {name,num}object]

Exemples :

  • [folder: ?{parent,1}folder, *{child,1}folder]
  • [member: *{sent,1}message, *{received,2}message]
    [message: {sender,1}member, {recipient,2}member]

Le numéro identifie un lien entre deux associations

Options

(options)[object]

Exemples :

  • (ct)[car]
  • (ec)[user]
  • (ze)[house]

Les options peuvent être : c (count), e (equals), s (toString), z (serialize)

Exemples

Simple

(s)[dog:|name,string|]

Classique

(s)[person:|firstname,string|,|lastname,string|,-car]
(s)[car:|model,string|,|brand,string|,*person]

Avancé

(s)[member: |login,string/20|, |isAdmin,bool,,false|, |password,string/41|, *{sent,1}message, *{received,2}message]
(s)[message: {sender,1}member, {recipient,2}member, |title,string/20|, |date,datetime|, |content,string|]
[post: member, |title,string/20|, |date,datetime|, |content,string|]
(s)[post<-question: *answer]
(s)[post<-answer: question]

Pour plus d'exemples et d'explications, rendez-vous sur la page d'aide.