我正在构建一个后端控制器。每次在构造函数中添加依赖项注入时,我都必须执行rm -r generated/code/{vendor}
。为什么会这样?
Magento 2文档解释了原因:
假设生成了Customer类的Factory或Proxy类,并且Customer类中添加了新方法。因为文件中存在Factory或Proxy系统,它不会再生。
但是,Factory或Proxy实现现在不完整,因为它没有新的方法。在这种情况下,必须重新生成Factory或Proxy类。
在您的案例中,代码是在注入新类之前生成的。在代码的__construct((中注入一个新类会导致生成的代码中__constructure((不匹配,从而导致错误。
删除生成的代码将导致Magento重新构造代码,以及__construct((中新添加的类。
https://devdocs.magento.com/guides/v2.3/extension-dev-guide/code-generation.html#codegen-为什么
希望这能有所帮助!