gpt4 book ai didi

php - 在 Laravel 中,使用 App::make ('' ) 而不是构造函数注入(inject)有什么缺点吗?

转载 作者:可可西里 更新时间:2023-10-31 22:54:28 25 4
gpt4 key购买 nike

通常我会通过构造函数注入(inject)依赖项,但是当父类具有依赖项并且必须将它们传递给所有子类时,它会变得非常冗长。

另一种方法是在父类中单独使用 $this->dependancy = App::make('Dependancy')。那么父子构造函数都可以为空。这样做有什么缺点吗?

最佳答案

您的方法有一个缺点,按照您的建议进行操作会使您的应用程序的可测试性降低。

我的意思是,如果您尝试为父类编写单元测试,您将不再孤立地测试该父类。您的测试现在还取决于父类内部声明的依赖项的结果。

如果您通过构造函数注入(inject)(或任何类型的注入(inject))传递此依赖项,您可以控制该依赖项并可以模拟/ stub 它的输出并更好地隔离测试您的父类。

关于php - 在 Laravel 中,使用 App::make ('' ) 而不是构造函数注入(inject)有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25467574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com