- All the files to be generated are already in /data/
- This repository is used to update/patch model of mwb-dom
- This repository is used to upgrade/maintain the model of mwb-dom
- LLVM
- PHP
test/main.cc analyse c header source and generate a php stub-like in data/
Key point : GrtStructVisitor::visit(TranslationUnitAST *ast)
src/.php generate /Mwb/Grt/.php
Patch mysql-workbench/mwb-dom
ReverseEngineering/
└── src/
├── Source/ (sources brutes, fournir des flux de données brutes.)
│ ├── RdbmsInfoSource.php
│ ├── (Structs[Stub|Header]Source.php)
│ ├── Structs[Grt|Xml]Source.php
│ └── GroupsDatatypeSource.php
│
---------------------------------------------------------------------------------------
├── Inspection (inspecteurs = analyse statique brute; extraction des données brutes; Chaque format de source donne lieu à un Inspector indépendant.)
│ ├── Inspector (interface; Un Inspector lit une seule source, sans logique métier.)
│ └── InspectionResult
│
├── Aggregation (fusion des résultats multi-sources)
│ │ produire une "vision unifiée" de MWB
│ ├── InspectionAggregator
│ └── InspectionSummary
│
├── Modeling (modèles internes propres → classes, modules, relations…)
│ └── DomainModel
---------------------------------------------------------------------------------------
│
├── Interpretation (interprétation des données inspectées)
│ │ C’est ici que tu déduis :
│ │ des types PHP depuis les types MySQL Workbench
│ │ la convention de nommage (CamelCase, PascalCase)
│ │ la structure logique (table → entity, colonne → property)
│ ├── SimpleDataTypeInterpreter -- -------------------------------------------------------- (actuellement dans <root>/Inspection/RdbmsInfoInspector.php ) prend en entrée un qui prendra en entrée un InspectionSummary contenant le XML.
│ ├── CharactereSetsInterpreter -- -------------------------------------------------------- (actuellement dans <root>/Inspection/RdbmsInfoInspector.php ) prend en entrée un qui prendra en entrée un InspectionSummary contenant le XML.
│ ├── NamingInterpreter
│ ├── ModelInterpreter
│ └── RulesInterpreter
│
├── Introspection (reflection de code et injection dans placeholder)
│
└── Generation (génération de code)
└── DomGenerator