Handler: Автоматизирано избиране

dakata__92

Super Moderator
Колеги, седя и се чудя как да си автоматизира клас „Manager“, от който да взимам инстанциите на други класове? Иска ми се да не губя и autocomplete. В момента се чудя как мога да подобря този вариант:
Код:
class Manager
{
    private static $handler = null;
    private static $multi = null;

    public static function handler()
    {
        if (empty(self::$handler)) {
            self::$handler = new Handler();
        }
        return self::$handler;
    } 
    
    public static function multi()
    {
        if (empty(self::$multi)) {
            self::$multi = new MultiHandler();
        }
        return self::$multi;
    }
}

В момента викам двете функции по отделно.
 
Какъв е този Manager? Какво прави? Къде го ползваш? Какво е $multi, какво е $handler?

Всичко е статично, наподобява на бегъл singleton, но всъщност е като 2 глобални променливи, които не се презаписват.

Код:
 public static function handler(): Handler
Това не е ли достатъчно :D
 
Имам един клас, в който ми се налага да държа две инстанции на два класа с общ интерфейс.
class First extends Manager
Идеята ми е да мога спокойно да извикам инстанциите на handler или multi класовете.
$v = First::handler()->init();
$v2 = First::multi()->init();

Чудя се просто дали това е достатъчно добро решение или може и с по-креативен и изчистен вариант.
 

Горе