Глобальный против функции против статического метода класса
Допустим, у вас есть уникальный объект, и он используется всеми другими классами и функциями ... что-то вроде$application
.
Как бы вы получили доступ к этому объекту в ваших функциях?
используя глобальную переменную в каждой из ваших функций:
global $application;
$application->doStuff();
создание функции, какapplication()
который создает объект в статическую переменную и возвращает его; затем используйте эту функцию везде, где вам нужно получить доступ к объекту:
application()->doStuff();
создайте одноэлементную вещь, как статический метод внутри класса объекта, который возвращает единственный экземпляр, и используйте этот метод для доступа к объекту:
Application::getInstance()->doStuff();
KingCrunch & skwee: передать объект приложения в качестве аргумента каждой функции / классу, где это необходимо
...
public function __construct(Application $app, ...){
....
Если есть другие варианты, пожалуйста, опубликуйте их. Мне интересно, какой из этих вариантов является наиболее эффективным / считается "наилучшей практикой".