で上書きすることができるようにSilverstripeはインジェクタでクラスを調べる:create()メソッドを使用してクラスはSilverstripeのドキュメントによると、依存性の注入
はあなたに優雅さと簡潔さを追加することができchainabilityを提供コード、例えばPlayer :: create() - > write()。しかし、もっと重要なのは、インジェクタのクラスを参照して、依存性注入によってクラスをオーバーライドできるようにすることです。
「インジェクタのクラスを参照して、クラスが依存性注入によって上書きできるようになる」と説明できる人はいますか?
これは、 'MyClass1 :: create()'によってインスタンス化されるすべてのクラスに適用されますが、フレームワークコードの多くが 'new MyClass1'によって作成されるクラスに対しては適用されません。 –
正しい。 'new MyClass()'は普通の古いPHPです。この構文を "ハイジャック"するのは非常に難しいでしょうから、SSは 'Injector's'' create()'メソッドを思いついています。参考までに、多くの人が見逃している 'createWithArgs()'もあります。 – theruss