Глобальный против функции против статического метода класса

Допустим, у вас есть уникальный объект, и он используется всеми другими классами и функциями ... что-то вроде$application.

Как бы вы получили доступ к этому объекту в ваших функциях?

используя глобальную переменную в каждой из ваших функций:

global $application;
$application->doStuff();

создание функции, какapplication() который создает объект в статическую переменную и возвращает его; затем используйте эту функцию везде, где вам нужно получить доступ к объекту:

application()->doStuff();

создайте одноэлементную вещь, как статический метод внутри класса объекта, который возвращает единственный экземпляр, и используйте этот метод для доступа к объекту:

Application::getInstance()->doStuff();

KingCrunch & skwee: передать объект приложения в качестве аргумента каждой функции / классу, где это необходимо

...
public function __construct(Application $app, ...){
  ....

Если есть другие варианты, пожалуйста, опубликуйте их. Мне интересно, какой из этих вариантов является наиболее эффективным / считается "наилучшей практикой".

Ответы на вопрос(0)

Ваш ответ на вопрос