Função global vs método de classe estática

Digamos que você tenha um objeto único e que seja usado por todas as outras classes e funções ... algo como$application.

Como você acessaria esse objeto em suas funções?

usando uma variável global em cada uma das funções:

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

criando uma função, comoapplication() que instancia o objeto em uma variável estática e o retorna; em seguida, use esta função em todos os lugares em que você precisar acessar o objeto:

application()->doStuff();

crie uma coisa singleton, como um método estático dentro da classe de objeto que retorna a única instância, e use este método para acessar o objeto:

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

KingCrunch & skwee: passe o objeto do aplicativo como argumento para cada função / classe onde for necessár

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

Se houver outras opções, poste-as. Gostaria de saber qual dessas opções é a "melhor prática" mais eficiente / considerad

questionAnswers(0)

yourAnswerToTheQuestion