Changelog
Vývojová verze
4.1.0 (4. 9. 2024)
-
Entity: přidána traita
Initialize
(#167) -
Entity: přidána podpora pro typ
non-empty-string
u 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 typuint
přiřaditstring
apod. (BC BREAK) -
Result: opravena chyba při volání
cleanReferencing
/cleanReferenced
v 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\Row
a zpět (umožňuje např. používat value objekty bez anotacem:passThru
v 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:
$defaultEntityNamespace
se 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:
addToReferencing
ignoruje duplicitní hodnoty (#143) -
Result: vytvoření instance pomocí
new self
změ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
hasOne
vazeb,DefaultMapper
v názvu sloupce použije název položky místo názvu tabulky (BC break, #77, #127) -
Vazby
belongsTo
jsou 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:default
je konvertována na správný datový typ (#122) -
Opravena chyba, kdy příznak
m:default
nebyl 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:enum
neš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:enum
umožň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::get
vracínull
pro nullable položky detachovaných entit -
Entity::get
aEntity::set
umožňuje přespassThru
změ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/dibi
vyž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:default
jako alternativa pro nastavení výchozí hodnoty property -
Přidána anotace
m:column
jako 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::__get
aEntity::__set
přesunut do nových metodEntity::get
aEntity::set
-
Změněna viditelnost metody
Entity::mergeFilters
naprotected
-
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í
IEntityFactory
včetně výchozí implementaceDefaultEntityFactory
(BC break) -
Zásadní zlepšení chybových hlášek
-
Implicitní filtry
-
Anonymní filtry
-
Dekompozice
Entity::__get
aEntity::__set
-
Entity::createCollection
aRepository::createCollection
př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
__get
a__set
Všechny změny lze vidět v tomto diffu.
2.0.1 (12. 9. 2013)
-
Přidány metody
LeanMapper\Result::cleanReferencingResultsCache
aLeanMapper\Row::cleanReferencingRowsCache
.
2.0.0 (26. 8. 2013)
-
Přidána podpora pro vlastní konvence – rozhraní
LeanMapper\IMapper
a 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\Connection
aLeanMapper\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
markAsCreated
namarkAsAttached
(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\Result
se negenerujeSELECT *
, aleSELECT table.*
(teoreticky je to BC break) -
Statická proměnná
LeanMapper\Repository::$defaultEntityNamespace
byla nahrazena stejnojmennou protected proměnnou (BC break) -
Hodnota anotace
@entity
nad 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
Repository
aEntity
byla 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
AliasesParser
tak, ž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í iDibiDateTime
atp.) -
Přidán příznak
m:extra
(možnost snadného vlastního rozšíření anotace) -
Upraven
LeanMapper\Result
tak, ž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-read
pro definici read only položek entity -
V anotacích
@property
a@property-read
v entitě je nově možné upřesnit, na jaký sloupec vLeanMapper\Row
se položka mapuje (např.@property string $bookName (book_name)
) -
Opraveny známé chyby