Téměř v cíli: dibi 0.9b
Vývoj databázového layeru dibi se nezadržitelně blíží k finální verzi. Vyzkoušel jsem si trošku jiný přístup k open source, existoval pouze jediný článek o této knihovně a připomínkování probíhalo v komentářích nebo přes e-maily. Za podněty děkuji zejména Tomáši Bartoňovi. Komorní atmosféra vývoje mi sedla, nemusel jsem se tolik svazovat zpětnou kompatibilitou ani řešit podporu.

Co je dibi?
Jde o minimalistický databázový layer, dobře padnoucí do ruky.
Jednosouborová verze obsahující ovladače pro 8 databází (MySQL, MySQLi,
PostgreSQL, SQLite, ODBC a experimentální MS SQL, Oracle a PDO) má pouhých
… a neřeknu
Tipněte si.
Dibi má plnit tyto tři cíle:
dibi - pokrokový databázový layer
Uplynulo sedm měsíců od doby, kdy jsem tu
poprvé psal o databázovém layeru dibi. Nechtěl jsem předvádět
hotové řešení, spíš otevřít diskusi. Ale místo podnětů mi přišlo
několik desítek žádostí o zdrojové kódy ;)
Konečně mohu všechny žadatele potěšit. Náhledová verze je k dispozici:
Download dibi-0.9.zip (rev. 100) 70kB
Řešení, které jsem navrhoval v původním článku, dnes považuji z více důvodů za překonané. Co se však nezměnilo, to jsou cíle tohoto layeru:
- maximálně ulehčit práci programátorům. Jak?
- zjednodušit zápis SQL příkazů, co to jen půjde
- snadný přístup k metodám, i bez globálních proměnných
- funkce pro několik rutinních úkonů
- eliminovat výskyt chyby. Jak?
- přehledný zápis SQL příkazů
- přenositelnost mezi databázovými systémy
- automatická podpora konvencí (escapování/slashování, uvozování identifikátorů)
- automatické formátování spec. typů, např. datum, řetězec
- sjednocení základních fcí (připojení k db, vykonání příkazu, získání výsledku)
- a především KISS (Keep It Simple, Stupid)
- zachovat maximální jednoduchost
- raději jeden geniální nápad, než 10.000 hloupých řádků kódu
A naopak záležitosti, o které mi vůbec nejde:
- zajištění kompatibility SQL příkazů
- emulace funkcí chybějících některým databázím
- vytvoření bohatých knihoven plných funkcí
- nechci konkurovat ActiveRecords apod., jde mi jen o čisté SQL
A také neřeším následující věci (a vysvětlím proč):
- funkce pro zkoumání struktury databáze a tabulek
- prepared SQL statements
Pokud neprogramujete aplikaci typu phpMyAdmin, tak žádné funkce na
zkoumání databázové struktury nepotřebujete. Vlastně bych řekl, že
jejich potřeba vypovídá o špatně navržené aplikaci. Dokud tuto
funkčnost nebudu potřebovat, nebo ji nenaprogramuje někdo jiný, tak v dibi
nebude
Prepared SQL statements jsem taktéž shledal zbytečnými. Proč? Především se mi nikdy nestalo, že bych v jednom skriptu volal tolikrát tentýž SQL příkaz lišící se jen v hodnotách parametrů. Za druhé se podle mých měření zrychlení dosažené pomocí prepare pohybuje v řádu procent. V reálném nasazení je tedy naprosto zanedbatelné. Oproti tomu takový vícenásobný INSERT, který dibi podporuje, umí zrychlit vkládání až tisícinásobně. A nakonec – výhody, které prepared statements přináší z programátorského hlediska, tedy pohodlné vkládání proměnných, řeší dibi výrazně lépe.
Takže pojďme se podívat, jak to celé funguje.

novější články