Changelog
Vývojová verze
4.2.1 (21. 2. 2025)
- Entity: navráceno původní méně striktní chování
m:passThrupro settery (změněno v 4.1.0) (#169)
4.2.0 (5. 1. 2025)
-
přidána podpora pro PHP 8.4 (#168)
-
odebrána podpora pro PHP 7.2 a 7.3
4.1.0 (4. 9. 2024)
-
Entity: přidána traita
Initialize(#167) -
Entity: přidána podpora pro typ
non-empty-stringu položek entity (#167) -
Entity:
settype()nahrazeno vlastní metodouHelpers::convertType()(#167) -
Entity: opraveno pořadí volání kontroly typu a setter pass (#167)
-
Entity: přidána podpora pro nullable syntaxi
?Foo(#167) -
IEntityFactory: vylepšena návratová hodnota u metody
createCollection()(#167)
4.0.5 (28. 11. 2023)
- přidána podpora pro PHP 8.3 (#165)
4.0.4 (15. 8. 2023)
- přidána podpora pro Dibi 5.x (#164)
4.0.3 (16. 2. 2022)
- opravena kompatibilita s PHP 8.1 (#163)
4.0.2 (18. 1. 2022)
- Entita: opravena chyba při čtení nullable položky s vazbou
m:hasOne(#161)
4.0.1 (20. 10. 2021)
- EntityReflection: opravena chyba při použití FQN (
\Foo\Bar) v příznakum:enum
4.0.0 (25. 3. 2021)
-
Entity: přiřazení hodnoty (
set()/__set()) kontroluje typ položky, tj. nejde do položky typuintpřiřaditstringapod. (BC BREAK) -
Result: opravena chyba při volání
cleanReferencing/cleanReferencedv kombinaci sFilteringResult -
používá typehinty dostupné od PHP 7.1 (BC BREAK)
-
Repository: vyhazuje vyjímku při přístupu k neexistující property (např.
$repository->onUnexists[]) -
Fluent: nepřepisuje statickou proměnnou
$masks(BC BREAK) -
úpravy v kódu, coding style
-
přidána možnost v mapperu konvertovat hodnoty načtené z databáze před předáním do
LeanMapper\Rowa zpět (umožňuje např. používat value objekty bez anotacem:passThruv entitě) -
kód je testován pomocí PhpStanu
-
Nette DI extension: opravena kompatibilita s nette/di ^3.0
-
všechny soubory obsahují
declare(strict_types=1) -
IMapper:
getRelationshipColumn()- přidán nový parametr$relationshipName(#77) -
DefaultMapper:
$defaultEntityNamespacese nově mění pomocí konstruktoru (BC BREAK) -
Vyžaduje Dibi 4.x a PHP 7.2 nebo novější (BC break)
3.4.2 (1. 4. 2020)
- Nette DI extension: opravena kompatibilita s nette/robot-loader 3.0+ (#151)
3.4.1 (14. 5. 2019)
3.4.0 (16. 3. 2019)
-
Nette DI extension: file logger používal neexistující třídu, nyní používá
Dibi\Loggers\FileLogger(#145) -
EntityReflection: přidána možnost přizpůsobit údaje poskytované reflexí pomocí
IEntityReflectionProvider(#141) -
SQLite3 - volání
$entity->removeFromX()způsobilo chybu, pokud nebylo SQLite zkompilováno s volbouSQLITE_ENABLE_UPDATE_DELETE_LIMIT(#143) -
Result:
addToReferencingignoruje duplicitní hodnoty (#143) -
Result: vytvoření instance pomocí
new selfzměněno nanew static(#140) -
Přidána podpora pro implicitní passThru (#137)
-
EntityReflection: vylepšen výkon (#132)
3.3.0 (11. 8. 2018)
-
Změněn výchozí sloupec u
hasOnevazeb,DefaultMapperv názvu sloupce použije název položky místo názvu tabulky (BC break, #77, #127) -
Vazby
belongsTojsou označeny jako pouze pro čtení (#124, #62)
3.2.0 (1. 5. 2018)
-
Hodnota příznaku v anotacích může nyní obsahovat zanořené závorky (např.
m:default(array())) (#122) -
V anotaci položky nelze pro zápis výchozí hodnoty použít rovnítkovou syntaxi zároveň s příznakem
m:default(#122) -
Hodnota zapsaná v příznaku
m:defaultje konvertována na správný datový typ (#122) -
Opravena chyba, kdy příznak
m:defaultnebyl označen jako výchozí hodnota ($property->hasDefaultValue()vracelofalse) (#119) -
Opravena chyba se změnou datového typu v passThru setteru (#117, #118)
-
Opraveno generování složitějších SQL dotazů při použití UNION strategie (#109)
-
Opravena chyba, kdy se Lean Mapper snažil použít i settery a gettery s viditelností private a protected (#97)
-
Opravena chyba, kdy při použití
m:enumnešlo do nullable položky přiřaditnull(#116) -
PostgreSQL - opravena chyba při volání
$entity->removeFromX()(#114) -
Vylepšena detekce položek s duplicitním názvem (#104)
-
Přidána podpora pro pomlčku v názvech příznaků (např.
m:flag-name) (#107) -
m:enumumožňuje použít neprefixované konstanty (SomeClass::*) (#100)
3.1.1 (10. 7. 2016)
Oznámení na GitHubu (anglicky)
-
Nette DI rozšíření - opravena kompatibilita s Nette 2.4
-
Známé chyby: #97
Všechny změny lze vidět v tomto diffu.
3.1.0 (9. 5. 2016)
Oznámení na GitHubu (anglicky)
-
Opravena chyba #85
-
Vylepšeny chybové hlášky
-
Entity::getvracínullpro nullable položky detachovaných entit -
Entity::getaEntity::setumožňuje přespassThruzměnu datového typu (BC break) -
Nette DI rozšíření - opravena chyba #95
-
Vyžaduje PHP 5.4 nebo vyšší (BC break)
-
Místo zastaralého balíčku
dg/dibivyžadujedibi/dibi -
Známé chyby: #97
Všechny změny lze vidět v tomto diffu.
3.0.0 (8. 3. 2016)
Oznámení na GitHubu (anglicky)
-
Vylepšen výkon
-
Vyžaduje Dibi 3.x (BC break)
-
Přidáno rozšíření pro Nette DI (obsahuje chybu #95)
-
Přidána anotace
m:defaultjako alternativa pro nastavení výchozí hodnoty property -
Přidána anotace
m:columnjako alternativa pro nastavení názvu sloupce
Všechny změny lze vidět v tomto diffu.
2.3.0 (9. 2. 2016)
-
Přidána podpora pro
ResultProxy -
Zjednodušeno a vylepšeno rozhraní entity, kód z magických metod
Entity::__getaEntity::__setpřesunut do nových metodEntity::getaEntity::set -
Změněna viditelnost metody
Entity::mergeFiltersnaprotected -
Vylepšena metoda
Entity::__isset(commit) -
Vylepšen výkon
-
Opravena chyba #73
-
Různá vylepšení a opravy
Všechny změny lze vidět v tomto diffu.
2.2.0 (27. 4. 2014)
-
Zachovávání kolekce ID ve Fluent
-
Nová metoda Connection::hasFilter
-
Nově se lze odkazovat na aliasy v SQL
-
„Preloading“, který umožňuje vznik nadstavby zvané LQL
Všechny změny lze vidět v tomto diffu.
2.1.0 (13. 12. 2013)
-
Přidáno rozhraní
IEntityFactoryvčetně výchozí implementaceDefaultEntityFactory(BC break) -
Zásadní zlepšení chybových hlášek
-
Implicitní filtry
-
Anonymní filtry
-
Dekompozice
Entity::__getaEntity::__set -
Entity::createCollectionaRepository::createCollectionpřesunuto doIEntityFactory::createCollection(BC break) -
přidána podpora pro výchozí hodnoty (v anotaci) null a prázdný řetězec
-
z vlastních getterů a setterů se lze nově odkazovat na
__geta__set
Všechny změny lze vidět v tomto diffu.
2.0.1 (12. 9. 2013)
-
Přidány metody
LeanMapper\Result::cleanReferencingResultsCacheaLeanMapper\Row::cleanReferencingRowsCache.
2.0.0 (26. 8. 2013)
-
Přidána podpora pro vlastní konvence – rozhraní
LeanMapper\IMappera defaultní implementaceLeanMapper\DefaultMapper(BC break) -
Odstraněna přežitá metoda
LeanMapper\Entity::getEntityClass, je žádoucí použítLeanMapper\IMapper::getEntityClass(BC break) -
Odstraněna přežitá metoda
LeanMapper\Repository::getEntityClass, je žádoucí použítLeanMapper\IMapper::getEntityClass(BC break) -
Přidána protected metoda
LeanMapper\Entity::initDefaults -
Přidána podpora pro výchozí hodnoty uvedené v anotacích
-
Přidána podpora pro správu jednoduchých M:N vazeb
-
Přidána podpora pro single table inehritance
-
Vylepšena podpora výčtového typu (přidána metoda
LeanMapper\Reflection\Property::getEnumValues) -
Zlepšen parser anotací, přidány nové příznaky a odstraněn příznak
m:extra(BC break) -
Přidán whitelist do metody
LeanMapper\Entity::getData -
Přepracován systém filtrů – nové třídy
LeanMapper\ConnectionaLeanMapper\Fluent(BC break) -
Přidán systém událostí
-
Provedena dekompozice
LeanMapper\Repository(vyčleněny protected metodyRepository::insertIntoDatabase,Repository::updateInDatabase,Repository::deleteFromDatabase) -
Přejmenovány metody
markAsCreatednamarkAsAttached(BC break) -
Přidána metoda
LeanMapper\Entity::__isset -
Entity není možné vytvářet z detached
LeanMapper\Row(BC break) -
Změněna viditelnost několika metod (všechny na méně omezující variantu)
-
Zlepšen výkon jádra a in-memory cache
-
Vylepšeny chybové hlášky
-
Při přístupu k položce mají metody vždy přednost před anotacemi
1.4.0 (21. 6. 2013)
-
V
LeanMapper\Resultse negenerujeSELECT *, aleSELECT table.*(teoreticky je to BC break) -
Statická proměnná
LeanMapper\Repository::$defaultEntityNamespacebyla nahrazena stejnojmennou protected proměnnou (BC break) -
Hodnota anotace
@entitynad repositářem může být fully qualified (začíná\) a pokud není, tak se využívá$defaultEntityNamespace(BC break) -
Nízkoúrovňová metoda
getModifiedData()byla přejmenována nagetModifiedRowData(), byla doplněna nízkoúrovňovágetRowData()a vysokoúrovňovágetData()(BC break) -
Konstruktor entity nově umí přijmout i pole nebo instanci
Traversable -
Do
RepositoryaEntitybyla doplněna protected metodacreateCollection(), jejímž přetížením lze zařídit, aby Lean Mapper vracel skupinu entit v nějaké uživatelské kolekci namísto jednoduchéhoarray -
Upraven
AliasesParsertak, že stavovým automatem prochází jenom ty části kódu, ve kterých může být nějakýuse(významné zlepšení výkonu) -
Upravena kontrola typů položek tak, že jsou přijímány i potomci vyžadovaných tříd (pokud položka vyžaduje
DateTime, nově prochází iDibiDateTimeatp.) -
Přidán příznak
m:extra(možnost snadného vlastního rozšíření anotace) -
Upraven
LeanMapper\Resulttak, že při získávání souvisejících dat může volitelně využívat „IN“ nebo „UNION“ strategii (viz jak to řeší NotORM a také viz tento článek) – je to důležité pro správné limitování a řazení -
Přidán příznak
m:enum(podpora pro výčtový typ, napříkladm:enum(self::STATUS_*))– thx @JanTvrdik
1.3.1 (10. 6. 2013)
-
Přidána anotace
@property-readpro definici read only položek entity -
V anotacích
@propertya@property-readv entitě je nově možné upřesnit, na jaký sloupec vLeanMapper\Rowse položka mapuje (např.@property string $bookName (book_name)) -
Opraveny známé chyby