PHP:从另一个对象调用对象方法的最佳方法?

我正在寻找从另一个类调用类方法的最佳方法,而不必使用Global来获取类实例,因为我现在理解“全局是邪恶的”!

以下是一些代码来解释它:

class Assets{
 public $assets = array();
 public function add($asset){
  $this->assets[] = $asset;
 }
}

现在我想在这里调用Assets / call方法.

$assets = new Assets;
class Form{
 public function __construct(){
  global $assets;
  $assets->add('Form');
 }
}

在这种情况下使用Global是不是很糟糕?如果是这样,其他什么方式被认为是最好的?

PS:我只需要使用该类的一个实例;意味着我不想在第二个类中创建一个新实例.

最佳答案
如果您只想拥有1个资产实例,则需要使用某种形式的依赖注入.

在这种情况下最明显的是将它传递给构造函数:

class Form{
 public function __construct(Assets $assets){
  $assets->add('Form');
 }
}

使用全局变量确实是一个坏主意.

转载注明原文:PHP:从另一个对象调用对象方法的最佳方法? - 代码日志