GENiE – Nejen ORM pro PHP

GENiE je systém pro transformaci (parsování a generování) textu. Hlavní jeho současnou aplikací je generování kódu pro objektově relační mapování (ORM) v PHP.

Tvorba webové aplikace

Představte si, že jste programátor a potřebujete dát dohromady webovou aplikaci.

Měli by jste: navrhnout a nakreslit datový model, zdokumentovat jednotlivé entity, jejich pole a vztahy, pro pole určit omezení obsahu, pro model vytvořit fyzické schéma podporovaných RDBMS, napsat kód pro manipulaci s daty v databázi, zpracovat požadavky na uživatelské rozhraní, vymyslet gray screeny, naprogramovat uživatelské rozhraní, udělat ověřování uživatelem zadaných hodnot ve formulářích, přeložit popisky a nápovědu k atributům entit jazyků podporovaných aplikací, atd.

Navíc při jakékoliv změně datového modelu, například při rozšiřování aplikace, je nutné vše znovu projít a provést potřebné změ­ny.

To zní jako spousta práce. A také to spousta práce je. Náplň práce programátora je eliminovat nudnou a na chyby náchylnou opakující se činnost. Nejen pro svého zákazníka, ale i pro sebe.

Myšlenka GENiE

Hlavní myšlenkou GENiE je centralizace popisu nějakého komplexního problému do jednoho člověkem čitelného a psatelného textového souboru. Takto může být popsán například datový model aplikace v jazyce DM.

Z textového popisu GENiE generuje vše co je možné: implementaci řešení problému, dokumentaci, snadno zpracovatelný XML popis vstupu, atp.

Textové soubory na rozdíl od grafických nástrojů mají mnohé výhody i některé nevýhody:

Usnadnění vývoje webové aplikace

popisu datového modelu se automaticky generuje:

Program GENiE je použitelný z příkazové řádky a díky tomu umožňuje snadnou automatizaci činností pomocí sestavovacího a nasazovacího systému webové aplikace. Zároveň je k dispozici grafická aplikace pro usnadnění vizualizace modelu, při jeho návrhu.

Systém lze snadno rozšiřovat. Jedním příkladem takového rozšíření, je vytáhnutí přeložitelných textů z reprezentace modelu v XML. Pokud váš systém používá gettext pak jsou tyto texty mohou překladatelé využít pro rychlou internacio­nalizaci aplikace. Výsledek internacio­nalizace aplikace, provedené tímto procesem, můžete vidět v akci v administrač­ním rozhraní megous.com.

Je možné zpracovat libovolně komplikované modely. Příkladem komplikova­nější aplikace může být například model sledování afghánských dešťů, který využívá funkci seskupení entit pro zpřehlednění diagramu.

Prohlédněte si několik dalších obrázků modelů, které jsem pomocí GENiE napsal.

DBO – Databázové objekty

Součástí GENiE je implementace objektově relačního mapování (ORM) v PHP nazvaná DBO, která usnadňuje práci s daty v databázi. DBO implementuje následující vlastnosti:

Podívejte se na ukázku použití DBO v kódu webové aplikace.

Hodnota GENiE

Hodnota GENiE v principu pramení z toho, že vytváří a vynucuje jedno centrální místo, kde je popsán datový model aplikace. Oproti na první pohled přitažlivým grafickým ER nástrojům, GENiE umožňuje snadnou správu revizí modelu pomocí vašeho oblíbeného SCM nástroje, s možností slučovat změny z více větví vývoje.

Výhody, které pocítí zákazník: