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