Vyšel Lean Mapper 4
Lean Mapper 4 je tady. Pojďte se podívat co přináší.
Chystané novinky v Lean Mapperu 4 jsme si podrobně popisovali v předchozím článku. Dnes jen rychlý přehled.
Podpora Dibi 4 a PHP 7.2+
Lean Mapper nyní vyžaduje Dibi 4 a PHP 7.2 nebo novější. Zároveň je plně kompatibilní s PHP 8.0.
Všechny metody a funkce nyní obsahují nativní typehinty, které přineslo PHP 7. Všechny soubory taky obsahují declare(strict_types=1)
.
Konverze hodnot z databáze
Lean Mapper nyní v mapperu umožňuje konvertovat hodnoty z databáze předtím než se předají do entity. Můžete tedy hodnoty převést třeba na value objekty nebo provádět jiné konverze.
Konverze se provádí v mapperu pomocí nových metod convertToRowData
(databáze => entita) a convertFromRowData
(entita => databáze).
Vychozí namespace entit
Výchozí namespace entit ($defaultEntityNamespace
) v LeanMapper\DefaultMapper
se nyní nastavuje pomocí konstruktoru:
$mapper = new LeanMapper\DefaultMapper('App\Entities');
Není tedy již nutné podědit DefaultMapper
a přepsat property $defaultEntityNamespace
.
LeanMapper\Fluent
LeanMapper\Fluent
již nepřepisuje statickou proměnnou $masks
a spoléhá se na nastavení z Dibi.
Striktnější přiřazování hodnot
Entity jsou nyní striktnější při přiřazování hodnot do entity. Dřívě bylo možné přiřadit do položky typu int
např. řetězec a Lean Mapper na pozadí provedl konverzi hodnoty na správný typ pomocí settype()
. Nyní entita vyhodí vyjímku a přetypování musíte provést sami. Kontrola se neprovádí u položek s příznakem m:passThru
- u nich musíte kontrolu provést sami.
Opravy chyb
- byly doplněny testy a opraveny některé okrajové případy
Repository
při přístupu k neexistující property ($repository->unexists
) generovalo nesmyslnou hlášku, nyní vyhazuje vyjímku- byla opravena kompatibilita s
nette/di
^3.0 při použitíLeanMapper\Bridges\Nette\DI\LeanMapperExtension