Architektura generátoru kódu v PHP rubrika: Programování: PHP
Ahoj,
trochu (víc) jsem se zasekl na architektuře generátoru PHP kódu psaného přímo v PHP. Rád bych požádal zdejší komunitu o pomoc.
Snažím se generovat třídu, která má nějakou funkčnost na základě nějaké konfigurace. Konfigurace je primárně pole, ale teoreticky může být v nějakém jiném formátu. Třeba v Neonu. Jinými slovy, mělo by se dát velmi jednoduše rozšířit podobu předání konfigurace o další formát - třeba dopsáním dekorátoru...?
Dále bych rád, aby se vygenerovaná třida uložila někam do temp adresáře, negenerovala se stále dokola a příslušný soubor se nahrával přes require. Tato cache by se měla sama invalidovat, pokud se změní vstupní soubor (v případě, že data pocházejí ze souboru).
A naposledy, továrna na generovaný kód by měla vracet přímo instanci generované třídy.
Tedy použití by mělo vypadat asi takto:
$instanceOfGeneratedClass = $generator->create($arrayConf); //nebo třeba $instanceOfGeneratedClass = $generator->create($fileWithConfig);
Jak by měla správně vypadat architektura (class diagram) takového generátoru? Jak správně rozdělit odpovědnosti?
Díky všem za případnou radu, či třeba i odkaz na nějaký článek :-)
Nemám moc rád kód, který dokáže pracovat s naprosto libovolným vstupem. Stačí:
$arrayConf = $fileConfigReader->read($fileWithConfig); $instanceOfGeneratedClass = $generator->create($arrayConf);
Komentáře
- arron : Zatím to mám udělané tak, že mám jakýžsi ArrayBuilder, který přijímá array a pak NeonBuilder, který je dekorátorem a přidává podporu pro parsování neonu. Nicméně si nejsem jistý, jak moc to můžu prohlásit za čisté... — 2.6.2014
Pro plný přístup na Devel.cz se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře