tasksFactory) { return $this->tasksFactory; } // Ленивая инициализация фабрики $this->tasksFactory = new TasksFactory(); // Настройка фабрики $this->tasksFactory->loadSettings([ TasksFactory::TASKS_TABLE => 'tasks', // Установка таблицы задач ]); // Инъекция зависимостей (передача текущего провайдера модулей) $this->tasksFactory->injectModules($this); return $this->tasksFactory; } /** * Получает экземпляр фабрики другого модуля. * Также использует ленивую инициализацию. * * @return OtherModuleFactory Экземпляр фабрики другого модуля */ public function getOtherModule(): OtherModuleFactory { // Если фабрика уже создана - возвращаем её if ($this->otherModuleFactory) { return $this->otherModuleFactory; } // Ленивая инициализация фабрики $this->otherModuleFactory = new OtherModuleFactory(); return $this->otherModuleFactory; } }