Magento 2包含许多预先生成或即时生成的类文件。他们住在
var/generated
这些生成的文件包括工厂类。根据文档,据我了解,程序员使用工厂类来实例化“不可注入”对象。“不可注入”对象是无法通过__constructor
依赖项注入添加的对象,通常是因为它需要用户输入才能实例化。
从文档中不清楚的是Magento 2如何知道它需要生成工厂类。这一点
如果对象管理器在运行时模式或编译器中遇到不存在的工厂,则对象管理器将生成工厂。
听起来好像我在对象管理器中使用工厂类(或者,在依赖项注入__constructors中使用扩展)时,Magento 2会为我生成它。但是对象管理器如何知道我要的东西是工厂?
同样,似乎有两个 命令可以自动生成(或“编译”)所有生成的类。运行这些命令中的任何一个都会生成大量的Factory类。 这些命令在寻找什么配置和/或代码文件以生成所需的工厂对象?
我知道一直追踪对象管理器和/或命令代码将揭示这一点,但是我希望避免那漫长而艰巨的旅程。