Zmodernizoval jsem kód knihoven Dibi a Texy, třídy přenesl do jmenných prostorů a využil syntaxe PHP 5.4. Zároveň jsem doplnil mechanismus, aby knihovny fungovaly i s existujícím kódem, který používá původní názvy tříd.
Výsledkem je Texy 2.8 (release notes) a Dibi 3.0 (release notes).
Dibi mělo nést původně označení 2.4, protože krom vnitřního refactoringu jsem nechtěl přidávat nebo měnit jakoukoliv funkčnost, jako u Texy 2.8, ale nakonec jsem pár vychytávek přidal a výsledkem je právě verze 3.0:
- nové výjimky
Dibi\ConstraintViolationException
,ForeignKeyConstraintViolationException
,NotNullConstraintViolationException
aUniqueConstraintViolationException
- MySQL: sloupec TIME se převádí na objekty DateInterval namísto DateTime (BC break)
- SqlsrvDriver: doplněna podpora pro LIMIT & OFFSET
- vylepšen Dibi\Fluent při použití limit & offset
Zmizely ovladače pro SQLite 2 a MsSqlDriver, které nejsou od PHP
5.3 podporované, a MsSql2005Driver se nyní jmenuje SqlsrvDriver (funguje
i starý název). Statická třída dibi
zůstává mimo jmenné
prostory. Pokud si píšete vlastní ovladač, došlo ke změně v rozhraní
u metod escape()
& unescape()
(viz).
Minimální požadovaná verze PHP je 5.4.4, obě knihovny jsou plně funkční i pod PHP 7. Minifikovaná verze je ve formě archívu PHAR.
Dibi postupně pokrývám testy. Jelikož nepoužívám MS SQL Server, je tento driver víceméně v rukou komunity. Pokud jej používáte, zkuste prosím zjistit, proč neprocházejí testy používané pro jiné servery a co je potřeba změnit.
Velmi pozvolna vzniká i Texy 3.0, ze kterého zmizí dnes už překonané funkce, jako je třeba podpora jiného kódování než UTF-8, jiného formátu než HTML5 atd.
Komentáře
petr #1
Ahoj, prestala fungovat konstrukce
foreach($rows as $row) {
$row->icons[] = „icon2“;
}
Ve verzi 2.3 normalne prida do pole ikonu. Zde jiz ne
David Grudl #2
To je pravda. Řešením je proměnnou nejprve vytvořit:
Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.