Po dvanácti letech dostala Dibi přísný kabát strict_types, plné typování
a nullable returny místo falseable podivností. Přibylo JSON dekódování,
nový Expression objekt a několik historických reliktů šlo na smetiště.
Budoucnost? Ta stojí a padá s vašimi donacemi.
Chtěl jsem jen přenést třídy do jmenných prostorů, ale neudržel jsem se
a pár vychytávek přidal. Dibi tak místo verze 2.4 skočilo rovnou na
3.0. Texy 2.8 šlo ven s ním, obě knihovny jedou na PHP 7 a starý kód
nepřestane fungovat.
Devět let vývoje, dvě databázové vrstvy a hromada zbytečného FUD.
Rozřezávám jednou provždy, proč vzniklo Nette Database jako „dibi model
2010“, co je NDBT a proč pro nový projekt nemá smysl sahat po
starém dibi.
SQL příkazy v dibi teď můžete řetězit jako volání metod. Zásadní
výhoda? Snadná parametrizace. Továrna připraví základ dotazu, vy si ho pak
doladíte o podmínky a řazení. Třída DibiFluent zvládne libovolnou
syntaxi a její kód je překvapivě krátký.
Dibi dostalo chytré placeholders, nové modifikátory %and, %or pro skládání
podmínek a přenositelné %lmt, %ofs pro limity. Všechno „důkladně
otestováno“ na produkčních serverech, takže co se může pokazit, že?
Přidal jsem do dibi jednoduchou hračku: třída reprezentující tabulku,
která zvládne CRUD operace bez zbytečného ORM balastu. Table Data Gateway
v čisté podobě, navíc s vrozenou imunitou vůči SQL injection. Žádná
magie, jen pragmatický helper pro rutinní práci.
phpMyAdmin se s importem SQL dumpu párá tak zoufale, že dřív vyprší
časový limit PHP. Tak jsem napsal vlastní importér, co zvládne totéž za
zlomek sekundy, a začlenil ho do dibi. Dva řádky kódu a hotovo.
Minimalistický databázový layer pro 8 databází, který si píšu, protože
open source nevěřím. Killer feature? Metoda fetchAssoc s asociativními
deskriptory, které připisuji vyššímu vnuknutí, protože jim sám občas
nerozumím. A co PDO? Dibi existuje, to je ten rozdíl.
Místo podnětné diskuse mi přišly desítky žádostí o zdrojáky. Tak
prosím: databázový layer postavený na filosofii „raději jeden geniální
nápad než 10 000 hloupých řádků kódu“. Návykový zápis SQL, chytré
modifikátory a ActiveRecords nehrozí.