Тема: Рефакторинг фабрики
Маю легасі проект, у якому є така конструкція:
class entityCreator
{
    function get($entityName)
    {
        return new $entityName();
    }
}
class entity1
{
    function __contruct()
    {
        global $db;
        ...
    }
}
class entity2
{
    function __contruct()
    {
        global $logger;
        global $memcache;
        ...
    }
}Таких entity є ~100
Очевидно, що хочу позбутися global
Зараз вже частина системи перебита на symfony.
Найпростіший варіант, мабуть, це визначити всі entity у service і в entityCreator передати serviceContainer
Але не хочеться описувати всі 100 ентіті.
Другий варіант. Враховуючи, що левова частка ентіті використовує тільки базу, у service описати тільки специфічні ентіті. А у функції get перевіряти, якщо у serviceContainer є потрібна ентіті беремо її, якщо ні, тоді return new $entityName($serviceContainer->get('db'));
Мені здається, що це доволі поширена ситуації, можливо хтось порадить, якись кращий варіант?