Лучшие практики для создания экземпляров служебных классов в PHP - PullRequest
0 голосов
/ 02 апреля 2020

Поскольку я стал более опытным в использовании классов в PHP (PHP 7 'pure', без фреймворка), я столкнулся с философским вопросом.

У меня есть ряд "полезных" классов, таких как как PDO, Monolog, i18 translation и c ... Они управляются централизованно с помощью Composer автозагрузчика и пространств имен и используются во всем моем приложении.

Вопрос в том, где лучше всего создать экземпляр их.

т.е. если я создаю новую функцию, я должен:

  • Инстанцировать класс ($ pdo = new PDO ()) централизованно (т.е. со всеми инициализациями) ), а затем загрузить экземпляр в функцию в качестве глобальной переменной? Должен ли я передать экземпляр в качестве аргумента функции?

  • Или я должен создать экземпляр класса локально, в области действия функции (мне кажется, что это пустая трата для умножения экземпляров, плюс во многих случаях это будет означать, что глобальные параметры должны быть определены как свойства класса stati c?

  • Аналогично, когда я создаю новый класс, лучше ли создавать экземпляр класса в начале файла Class и затем передать его классу в качестве аргумента __construct?

  • Или лучше создать новый экземпляр в методе __construct?

  • Или, может быть, передать экземпляр методу, который требует его, в качестве аргумента ...

Я подозреваю, что некоторые ответы могут иметь ie в концепции внедрения зависимостей, и что-то вроде PHP_DI, вероятно, предложило бы что-то там, но это все еще далеко над моей головой, и я учусь на шаг за раз!

Я смотрел везде, но не могу eem, чтобы найти мнение!

Спасибо, E.

...