2017-03-29 3 views
0

PHPで高価なオブジェクトインスタンスを不必要に再インスタンス化しないようにするための妥当な方法はありますか?PHPでの複雑なオブジェクトインスタンスの再利用

私は米国の州を扱うアプリケーションを持っています。各状態はUSStateクラスのインスタンスです。私は、アプリケーションが各状態オブジェクトのインスタンスを1つしか持たないことを保証したいと思いますが、アプリケーション全体の多くの場所で使用されています。

シングルトンパターンを調べましたが、クラスが1つのインスタンスしか持たないときに使用されています。ここには50個のインスタンスがありますが、それ以上のインスタンスはありません。

私はそれらをグローバルスコープに置くことができ、常にそれらの方法(global $california)を参照することができますが、それは間違っているようです。

+0

おそらくレジストリまたはオブジェクトプール。 – AbraCadaver

答えて

1

あなたのフレームワークが提供するService Locator Patternまたは依存性注入を使用します。通常、私はZend Frameworkに行きますが、あなたの状況を知らないので、フレームワークがまったくないと思います。この場合、私は非常に単純なDependency Injection Containerを提案しますが、それはDIC自体に依存します。 Pimpleがその1つです。

+0

これは、この状態のものが移植されたWordPressサイトです(州はカスタム投稿タイプではなく、CMSからアクセスできない別のデータベーステーブルを使用します)。依存関係を追加することは問題ではありませんが、Pimpleがこのような場合に意図されたようには見えませんでした。私はそれに近い外観を与えるでしょう - ありがとう! –

関連する問題