PHP两种类型的依赖项注入之间的差异
我想征求你对这件事的意见 2种成瘾性注射方法的不足之处是什么? 我向您解释代码: 第一个是在制造商中注入要使用的类:PHP两种类型的依赖项注入之间的差异,php,dependency-injection,logic,difference,Php,Dependency Injection,Logic,Difference,我想征求你对这件事的意见 2种成瘾性注射方法的不足之处是什么? 我向您解释代码: 第一个是在制造商中注入要使用的类: /** * @var FileUploader */ private FileUploader $fileUploader; public function __construct(FileUploader $fileUploader) { $this->fileUploader = $fileUploader
/**
* @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,
]);
}
所以我的问题是:
这两种做事方式的区别是什么?应该选择哪一个?哪一个应该是最有效的?还是只有两种风格
如果任何知道我问题答案的人都能回答那就太好了
非常感谢您将来的回答,祝大家好运。不同之处在于你们班的结构。如果你想在一个函数中使用更多的注入对象,那么你必须首先使用注入对象来获得漂亮的代码。如果只想在一个函数中使用,则必须使用第二个函数。因为你必须考虑负载,以及这个类会做什么 更新: 负荷是指: 然后将注入到构造函数中,它会将所有数据放入ram中,等待使用它进行更快的处理,因此,如果注入是非常大的对象,则需要将大量的位放入ram中并缓慢加载,这样脚本将使响应变长,无论您处理什么代码。然后,您将在一个类中使用更多的,例如大型对象,然后您可以将其注入构造函数,无论如何,如果使用正确,您将不会得到无意义的代码 总结: 如果只使用一次或小零件,则差别不大。但是,如果您使所有的代码都很重,那么您的负载将缓慢地保持不变
使您的代码更轻松,便于您自己和计算机使用。请在您的答案中添加更多解释。你说你必须考虑负载是什么意思?