私はZend Frameworkの3で新しいアプリケーションを作成していると私は、に接続されるのように、いくつかのサービスを持つことになり非常に詳細で、このアプリケーションを入力せずにデザインパターンZend Frameworkの3つのシングルトン
について質問があります外部API、さらには複数のデータベースであっても、ワークフローは非常に複雑で、いくつかの外部情報(ユーザーがログインした場合など)に応じて、単一のアクションが複数のフローを持つことができます。
私は依存性注入とZend Framework 3 Service Managerについて知っていますが、特定のケースでフローが実際にわずかしか使用されないときに、serevalサービスのインスタンス化が心配です。また、他のサービスにも依存します。このために、私はシングルトンを使うことを考えていました。
ここでシングルトンは本当に解決策ですか?私はZend Framework 3でユーザシングルトンを使う方法を探していましたが、Service Managerのインスタンスを検索することができないため、サービス内のService Managerユーザを見つける方法が見つからないため、簡単な方法を見つけられませんでした。ファクトリシステムの外部にあります。
Zend Framework 3でシングルトンを実装する簡単な方法は何ですか?
"サービスマネージャを工場以外の別のクラスにも使用しないでください。"しかし、依存関係を持つクラスの新しいインスタンスを作成する必要がある場合はどうすればよいですか?たとえば、モデル内のオブジェクト内の異なるデータを操作し、両方のオブジェクトが同じクラスであるとします。サービスマネージャにアクセスすることなく、私はすべてのinstanciatingプロセスに手動でする必要があります。私はまだこのようなことが必要ですが、将来の問題について心配しています。 –
サービス内に別のサービスが必要な場合は、サービスにコンストラクタを挿入します。 他のクラスが関与していないときは、モデル内のデータを操作しません。データはサービスクラスで準備され、モデルに注入されます。 将来作成する必要がある工場の量が心配な場合は、それに慣れてしまう心配はありません。後で単体テストを書くときには感謝します。そして、「ブードゥー・トリック」(https://xtreamwayz.com/blog/2015-12-30-psr7-abstract-action-factory-one-for-all)がありますが、パフォーマンス上のペナルティがあります。 – xtreamwayz