Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.06.2017
Сообщений: 126
1

Создать экземпляр класса по его конструктору

10.11.2018, 15:16. Показов 688. Ответов 2

Здравствуйте, допустим у нас есть метод:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Создает экземпляр класса по его конструктору (псевдокод)
    public function autoMake($contract)
    {
        $getDependencies = function ($contract) {
            // Reflection: "потрошим" конструктор
            return [TodoService::class, Logger::class];
        };
 
        $deps = $getDependencies($contract);
 
        // Создать класс $contract:
        // вызвать конструктор с зависимостями $getDependencies()
        // call_user_func_array
        // не забыть make каждую зависимость
        return new $contract($deps);
    }
Есть пару классов:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Logger
{
    public function __construct(Config $config)
    {
        $this->mode = $config->get('logger.mode');
    }
}
 
class TodoListHelper
{
 
    public function __construct(DB $db, Logger $logger)
    {
        $this->db = $db;
        $this->logger = $logger;
    }
 
}
 
class DB
{
 
    public function connect($dbUser, $dbPass)
    {
 
    }
 
}
Как это можно реализовать в методе autoMake ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.11.2018, 15:16
Ответы с готовыми решениями:

Как создать экземпляр класса внутри другого, явно не указывая его название
Как создать екземпляр класса внутри класса явно не указывая его название и не присваивая в...

Создать экземпляр одного класса в Main, и передать его в экземпляр другого класса
Добрый день. Подскажите пожалуйста. есть несколько классов-файлов в одном пакете. class one...

Создать экземпляр класса, выбрав его из меню и нажав на кнопку
Есть классы Dog и Cat, кнопка "Запись" и две "радиокнопки", опять таки Dog и Cat. Вот что я хочу...

Как правильно создать экземпляр класса для доступа к его свойствам
Всем доброго времени суток. Сижу уже долго над этим участком. У меня есть класс Pinball, я создаю...

2
206 / 188 / 49
Регистрация: 15.03.2016
Сообщений: 1,198
14.11.2018, 05:27 2
бессмысленная затея
создайте класс и дёргайте его методы, засылая параметры
0
1803 / 1111 / 404
Регистрация: 13.06.2013
Сообщений: 3,754
20.11.2018, 20:33 3
На сервис контейнер похоже. Лучше готовый взять, например из ларавела.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.11.2018, 20:33

Создать объект, зная только имя класса и параметры, передаваемые конструктору
Сабж. Допустим дано String className="PC"; int p1=1; int p2=2; int p3=3; Как создать объект,...

Создать экземпляр метода класса или доступ к методу из экземпляра класса
Всем доброго времени суток!) Уже месяца как 2 не сишарпил и подзабыл...собственно задача такая:...

Создать экземпляр класса без явного указания членов класса
Если у меня есть два конструктора, один из которых по умолчанию, а второй явный. Я почему-то не...

Создать экземпляр класса по ссылке экземпляра класса
Есть класс для обработки клиентов // Абстрактный class ClientProcessing { }; Я создаю от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru