モジュールの抽象ファクトリを拡張して拡張ファクトリを削除する方法はありますか?私はそれにいくつかの変更を加える必要がありますが、私がそれを拡張して新しいものを登録すると、古い工場はまだ登録されていますか?ZF3 - 第三者モジュール抽象ファクトリを削除する
0
A
答えて
4
あなた自身で工場を上書きすることはできますが、コードの重複が発生し、そのサードパーティモジュールの開発者が行った更新を監視する必要があります。
initializer
を使用できますが、各サービスの初期化中に呼び出されるため、パフォーマンスに影響する可能性があります。
あなたが探しているのは委任者です。それは本当の(元の)工場のラッパーのようなものです。ここ
はマルコ・Pivettaによって逸品です:Delegator Factories in Zend Framework 2 これは彼が委任者に説明する方法である:
委任者の工場はかなり本物の工場のラッパーである:それは が持つ本当のサービスを交換するか、私たちを可能に"delegate"、または は、 Zend \ ServiceManagerによって返される前に、ファクトリによって生成されたオブジェクトと対話します。擬似コードで
、委任者工場は、以下を行っている。
サービス= delegatorFactory(工場())。 委任工場の
例:
class LoggerDelegatorFactory implements DelegatorFactoryInterface
{
public function createDelegatorWithName(
ServiceLocatorInterface $serviceLocator,
$name,
$requestedName,
$callback
) {
$logger = $callback();
$logger->clearFilters();
$logger->addFormatter(new HttpRequestContextFormatter());
return $logger;
}
}
サービスマネージャの設定:
'delegators' => [
'DbLoggingModule\Logger' => [
'LoggerDelegatorFactory',
// can add more of these delegator factories here
],
],
関連する問題
- 1. 第三者モジュールのオーバーライドメソッド
- 2. 私のサイトで第三者faviconを削除するには?
- 3. 第三者から第三者にメールを送信する
- 4. デザインパターン - 抽象ファクトリ - BombedMazeFactory
- 5. MEFと抽象ファクトリ
- 6. OpenSceneGraph:第三者ビュー
- 7. 第三者のjavascript APIを抽象化する良い方法はありますか?
- 8. Sharepointの第三者コンポーネント
- 9. 第三者コンポーネントへのinnerRef
- 10. アンドロイドの第三者アプリ
- 11. 第三者FloatingActionButtonライブラリはCoordinatorLayout
- 12. 第三者のソーシャルメディアAPI'S
- 13. 第三者CRMとのコンタクトフォーム
- 14. 第三者のライブラリメソッドにアクセス
- 15. .NETでの抽象ファクトリの例
- 16. Nugetで第三者のライセンスを探す
- 17. クッキーを第三者または第一者として分類する方法
- 18. 第三者のHTML5 .HTAアプリケーションですか?
- 19. Appceleratorハイパーループ - 第三者のスウィフトライブラリを使用
- 20. htmlの第三者Androidアプリを開く
- 21. 第三者のアプリケーションを開く
- 22. インテントから第三者アプリを開く
- 23. Resharperは第三者decompiled dllをデバッグ
- 24. 第三者のウェブサイトを埋め込む
- 25. TDDを使用した第三者コンポーネント
- 26. 第三者モジュールのパススルー/エクスポート(__all__を使用していますか?)
- 27. このシナリオで抽象ファクトリを持つファクトリが必要ですか?
- 28. ウィンドウシステム向けの抽象ファクトリを実装する方法
- 29. データベースデザインと第三者の統合
- 30. 第三者コンポーネントのCOM代理人