Поскольку я стал более опытным в использовании классов в PHP (PHP 7 'pure', без фреймворка), я столкнулся с философским вопросом.
У меня есть ряд "полезных" классов, таких как как PDO, Monolog, i18 translation и c ... Они управляются централизованно с помощью Composer автозагрузчика и пространств имен и используются во всем моем приложении.
Вопрос в том, где лучше всего создать экземпляр их.
т.е. если я создаю новую функцию, я должен:
Инстанцировать класс ($ pdo = new PDO ()) централизованно (т.е. со всеми инициализациями) ), а затем загрузить экземпляр в функцию в качестве глобальной переменной? Должен ли я передать экземпляр в качестве аргумента функции?
Или я должен создать экземпляр класса локально, в области действия функции (мне кажется, что это пустая трата для умножения экземпляров, плюс во многих случаях это будет означать, что глобальные параметры должны быть определены как свойства класса stati c?
Аналогично, когда я создаю новый класс, лучше ли создавать экземпляр класса в начале файла Class и затем передать его классу в качестве аргумента __construct?
Или лучше создать новый экземпляр в методе __construct?
Или, может быть, передать экземпляр методу, который требует его, в качестве аргумента ...
Я подозреваю, что некоторые ответы могут иметь ie в концепции внедрения зависимостей, и что-то вроде PHP_DI, вероятно, предложило бы что-то там, но это все еще далеко над моей головой, и я учусь на шаг за раз!
Я смотрел везде, но не могу eem, чтобы найти мнение!
Спасибо, E.