PHP的区别 2 种类型的依赖注入



我想问问你对事情的看法

2上瘾注射方法之间有什么不足? 我向你解释代码:

首先是注入制造商要使用的类:


/**
* @var FileUploader
*/
private FileUploader $fileUploader;
public function __construct(FileUploader $fileUploader)
{
$this->fileUploader = $fileUploader;
}

第二种方法是直接注入到函数中:

/**
* @Route("/", name="admin_images_index", methods={"GET"})
* @param ImagesRepository $imagesRepository
* @return Response
*/
public function index(ImagesRepository $imagesRepository): Response
{
$query = $imagesRepository->findByImage();
return $this->render('images/index.html.twig', [
'images' => $query,
]);
}

所以我的问题是这样的:

这两种做事方式有什么区别?应该选择哪一个?哪一个应该最有效?还是只有 2 种风格要做?

如果任何知道我问题的答案的人可以回答,那就太好了,

非常感谢您未来的回答,祝大家好运。

差异是类的结构。如果你想在一个函数中使用更多,那么注入对象你必须首先用于漂亮的代码。如果你只想在一个函数中使用,你必须使用第二个函数,因为你必须考虑负载以及该类将执行的操作。

更新

"负载"是指:

然后你注入到构造函数中,它会将所有数据放入 ram 中并等待使用它(为了更快的处理(,所以让我们来看看你的注入是非常大的对象(大量放入 ram 并缓慢加载它(,所以你的脚本将使响应更长,对于你编码处理的所有内容。然后,您将在一个类中使用更多,例如大型对象,然后您可以将其注入构造函数,无论如何,如果正确使用,您将不会毫无意义的代码。

总结:

没有太大区别,如果它只使用一次或小零件。但是,如果您使所有代码都很重,那么您的负载将慢慢相同。

使您的代码轻巧且易于使用您的自我和计算机。

最新更新