Magento 2には、事前に生成された、またはその場で生成された多くのクラスファイルが含まれています。彼らが住んでいます
var/generated
これらの生成されたファイルには、ファクトリクラスが含まれます。ドキュメントから、プログラマーはファクトリクラスを使用して「注入不可能な」オブジェクトをインスタンス化することを理解しています。「非注入可能」オブジェクトとは、通常、インスタンス化にユーザー入力が必要なため、依存性注入を介して追加できないオブジェクトです__constructor
。
ドキュメントから明らかでないのは、Magento 2がファクトリクラスを生成する必要があることをどのように認識するかです。このビット
ランタイムモードまたはコンパイラのオブジェクトマネージャが存在しないファクトリに遭遇した場合、オブジェクトマネージャはファクトリを生成します。
オブジェクトマネージャー(または拡張機能により、依存関係の挿入__constructors)でファクトリクラスを使用すると、Magento 2がそれを生成するように聞こえます。しかし、オブジェクトマネージャーは、私が要求しているのがファクトリーであることをどのようにして知るのでしょうか?
また、生成されたすべてのクラスを自動的に生成(または「コンパイル」)するための2つの コマンドがあるようです。これらのコマンドのいずれかを実行すると、多数のファクトリクラスが生成されます。 必要なファクトリオブジェクトを生成するために、これらのコマンドはどの構成ファイルやコードファイルを調べていますか?
オブジェクトマネージャやコマンドコードを最後までたどることでこれが明らかになることはわかっていますが、長くて骨の折れる旅を避けたいと思っています。