Jak na složitější model?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MilanLempera
Člen | 11
+
0
-

Zdravím,
už nějaký čas hledám něco jako konečné řešení modelu.
Pročetl jsem většinu témat o návrhu modelu nejen tady na fóru (třeba https://forum.nette.org/…vs-db-tabuly, nebo http://www.phpguru.cz/…rstev-modelu).
Před půl rokem se to řešilo skoro všude, včetně pokusů o ORM, ale aktuálně jsem žádné podobné téma nenašel.

Co od modelu očekávám:

  • změnu databáze (uložiště) by měla umožnit změna pouze jedné třídy (vrstvy)
  • model by měl být řízen daty (nést v sobě informace o uložišti a podle nich pracovat)
    • to by ve výsledku mohlo umožnit práci s více verzemi jedné entity (např. přidání atributu v entitě od určitého data, při zachování funkčnosti starších záznamů)
  • model by měl zvládat validaci podle životního cyklu konkrétní entity (řízenou daty)
  • v modelu (případně v další vrstvě nad ním) by měla být řešena přístupová oprávnění jednotlivým entitám dle jejich stavu (opět řízena daty)
  • ideálně by mělo být všechno napsané tak, aby bylo možné model generovat na základě metainformací o databázi

Na jednoduché entity jako jsou články, nebo stránky je taková struktura zbytečně složitá, ale u entit se složitým životním cyklem na kterém závisí přístupová oprávnění a validační pravidla by se nějaké systémové řešení hodilo.

Taky si zatím nejsem jistej, jestli je lepší si tohle všechno napsat sám, nebo jestli využít nějaké ORM a vybudovat na něm další vrstvy.

Jak moc vám přijdou tyhle požadavky reálné/scestné? A jak řešíte složitější modely vy?

Honza Kuchař
Člen | 1662
+
0
-

Já používám takové cosi postavené nad Ormionem. Ale je to při porovnání s kódem Nette příšerný bastl, se špatným návrhem. Takže zatím je to ve fázi konceptu a ještě alespoň půl roku bude. Navíc, pokud to budu někdy uvolňovat (za rok/dva), tak určitě ne opensource. ;)

Ale nad tím Ormionem to nebude vůbec těžké napsat. Pokud vím, tak je to nějakých 200 – 300 řádků. Akorát zatím nemám pořešená oprávnění… Ale to by s ACL neměl být nějak zvlášť problém.

Majkl578
Moderator | 1364
+
0
-

Ormion? To ještě existuje? :))

MilanLempera
Člen | 11
+
0
-

Na ormion jsem se díval, určitě je to dobrá inspirace, ale některé věci bych řešil jinak.

A věta „Používání Ormionu je jen na vlastní nebezpečí. Zkuste Doctrine 2.“ v readme mě nějak nepřesvědčila o tom, že bych na tom měl něco stavět :-)

Každopádně pokud bych měl něco takového psát, z ormionu bych určitě čerpal.

Editoval MilanLempera (3. 11. 2010 20:47)

Honza Kuchař
Člen | 1662
+
0
-

Já používám nějakou hodně starou verzi. Ještě určitě mnohem více vývojovou a taky trochu dovyvinutou vlastními silami. Klidně ti ten ormion pošlu – ale jen na vlastní nebezpečí. :) Jako každý open-source software. ;)

MilanLempera
Člen | 11
+
0
-

Že je to na vlasní nebezpečí mě netrápí (vlastně, co není, že?) spíš mě zarazilo to Zkuste Doctrine 2 :-)

Já mám verzi co je na githubu, ale jestli můžeš, pošli mi tu tvoji verzi, rád se na to podívám (milanlempera@gmail.com)