Nette\Database: co bych změnil

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

Roadmap pro Nette\Database

  • namespace Table bych přejmenoval na Active (sjednocení s názvem ActiveRow)
  • metodu find bych přejmenoval na wherePrimary
  • upravit komplentne SqlBuilder::where, aby bral poradne Selection, atp.
  • upravit poradne SqlLiteral, neco v tomto stylu
  • implementace unionu a optimalizace limitu nad related
  • kompozice s PDO pro Selection (jiz PR)
  • nova syntaxe pro backjoin (jiz hotovo)
  • promyslet Reflexe, moznost jejich kompozice

Napady, pripominky, …, budu prubezne prvni post upravovat :)

redhead
Člen | 1313
+
0
-
  • namespace Table bych přejmenoval na Active (sjednocení s názvem ActiveRow)

Nevím moc co to znamená, není to podst. jméno a nic si pod tím nedokážu představit.

  • metodu find bych přejmenoval na wherePrimary

Nechal bych. Vyskytuje se to podobně i v jiných systémech. wherePrimary by se mi ani nechtělo psát.

hrach
Člen | 1834
+
0
-

readhead: Tvoje reakce prameni z neznalosti. Ty bezne pouzivas metodu get(), ne find.

Editoval hrach (2. 1. 2013 18:16)

Caine
Člen | 216
+
0
-

Osobne bych find metody nechal, uz jsem si zvyknul, ze co je find, vrati selection, se kterym se da dal pracovat, zatimco get vraci primo zaznam(y).

Na ndb mi vadi, ze je az prilis trivialni. Co jsem doposud delal, vzdycky jsem mel nutkani, kterymu jsem podlehnul, si nad nim udelal vlastni nadstavbu, protoze jednoduchej activerow staci mozna tak do prikladu. Asi bych chtel moc, ale predstavoval bych si neco mezi ndb a doctrine, neco jako je fabik db, protoze Doctrine mi stale prijde jako moloch (i kdyz by se tam dalo najit nejakou tu inspiraci na vylepseni ndb). Ostatne je to videt i tady (CMS a frameworky nad Nette), kde polovina veci pouziva primo doctrine misto ndb.

Dale, co v ndb chybi, je nejaky mene narocnejsi vybirani vetsiho poctu read-only dat. Preci jen, kdyz se pro kazdej radek tvori novy activerow, u vice zaznamu je to hodne znat, pritom obycejny asoc. pole by bohate stacilo (viz hydratation u doctrine).

hrach
Člen | 1834
+
0
-
  • find metoda temer jiste nezustane. duvody:
    • neodpovidajici nazev k cinnosti, co dela
    • neidentifikovatelnost s fetch a get
redhead
Člen | 1313
+
0
-

@hrach: beru zpět.

enumag
Člen | 2118
+
0
-

namespace Table bych přejmenoval na Active (sjednocení s názvem ActiveRow)

\Nette\Database\Active\Selection? To se mi nezdá, Table mi připadá lepší… ale možná je to jen tím že jsem si na ten namespace Table už zvykl.

kompozice s PDO pro Selection (jiz PR)

Jsem zvědav kdy to David pustí. Jsem si docela jist že dříve nebo později ano, ale asi to bude chvíli trvat.

promyslet Reflexe, moznost jejich kompozice

Tohle by se mi zrovna dnes hodilo, nenapadá mne jiný způsob řešení popsaného problému než řešit tabulky přes dicovered a view přes conventional reflexi.

Napady, pripominky, …, budu prubezne prvni post upravovat :)

  • Trochu se mi nelíbí název metody Connection::table(), evokuje to ve mně, že vrací tabulku, ale ona vrací množinu všech řádků v tabulce, což je něco poněkud jiného a plyne z toho spousta chyb při používání NDB (typické chyby NěcoModel extends Selection, posílání selection do šablony s tím že tam se volá několik různých dotazů).
  • M:N relace (o tom jsme už mluvili pár měsíců zpátky)

Ke zbytku nemám žádné výhrady, moc se na to těším! ;-)

Editoval enumag (2. 1. 2013 21:22)

nanuqcz
Člen | 822
+
0
-

Napady, pripominky, …

Vícenásobný related:

$book->related('book_tag:tag')

Tím konečné všechny nadstavby nad NDB získají na kráse :-)

Editoval nanuqcz (3. 1. 2013 13:56)

enumag
Člen | 2118
+
0
-

@nanuqcz: To jsou ty M:N relace, o kterých jsem už psal.