Laravel应用程序>make(ClassA)类和新的A类()有什么区别



我需要知道以下方法之间有什么区别,每种方法的主要目标或特征是什么?

,如果有人能教我这一点或给我一个很好的参考,那就太好了。

$class = app()->make(ClassA::class);

vs

$class = new ClassA();

这是一个大问题,我认为在stackoverflow答案中不容易解释。

但在摘要中,第一种方法使用了所谓的依赖注入技术。在Laravel中,服务容器是解决框架周围依赖关系的容器。因此,例如,如果您的班级取决于运行时可用的其他资源,服务容器将负责提供这些资源。

,后者只是您自己做的普通对象实例化。

例如,构造函数中的ClassA具有与另一类相关的依赖性:

public function __construct(ClassB $classB) {}

然后使用第一种方法,服务容器将尝试为您解决classB,而使用第二种方法是需要提供这样的依赖性的方法:

$class = new ClassA(new ClassB);

我希望这可以澄清一下,尽管我提到这是一个大问题。

最新更新