# IEntityFactory
function createCollection(array $entities, ?string $entityClass = null);
Doteď jsem používal vlastní třídu Collection, která uměla pár rutin pro práci s kolekcí entit. Pokud ale pro nějakou entitu potřebuji zvláštní kolekci (dejme tomu BookCollection extends Collection), nemám jak ji vytvořit. Zkouším detekovat typ entity přímo z pole entit, ale to je ošklivé a navíc nespolehlivé - kolekce může být i prázdná.
Hodilo by se mi tedy předávat $entityClass do metody createCollection. Ta se volá na třech místech a vždy třídu vytvářených entit znám. Mohu poslat PR. Změna deklarace způsobí nekompatibilitu s případnými vlastními createCollection(array $entities);, ale v logice kódu nekompatibilita nevznikne, pokud je $entityClass volitelný parametr.
Případně by se to dalo řešit přetížením dotčených metod ve třidě Entity a Repository, ale ty jsou private a tedy není možné je upravit.
Doteď jsem používal vlastní třídu
Collection
, která uměla pár rutin pro práci s kolekcí entit. Pokud ale pro nějakou entitu potřebuji zvláštní kolekci (dejme tomuBookCollection extends Collection
), nemám jak ji vytvořit. Zkouším detekovat typ entity přímo z pole entit, ale to je ošklivé a navíc nespolehlivé - kolekce může být i prázdná.Hodilo by se mi tedy předávat
$entityClass
do metodycreateCollection
. Ta se volá na třech místech a vždy třídu vytvářených entit znám. Mohu poslat PR. Změna deklarace způsobí nekompatibilitu s případnými vlastnímicreateCollection(array $entities);
, ale v logice kódu nekompatibilita nevznikne, pokud je$entityClass
volitelný parametr.Případně by se to dalo řešit přetížením dotčených metod ve třidě Entity a Repository, ale ty jsou
private
a tedy není možné je upravit.