シングルトンの目的は、オブジェクトインスタンスを1つに制限し、グローバルアクセスを提供することです。
どちらも、不要または不要なものです。
インスタンスを1つのインスタンスに制限することは、この制限が現在ののインスタンスにのみ適用されるPHPでは、かなり無意味です。 リクエスト。 2つのリクエストが同時にマイクロブログサイトにヒットした場合でも、リクエストごとに1つのインスタンスが存在します。インスタンスのみが存在することを確認したい場合は、2番目のインスタンスをインスタンス化しないでください。
グローバルアクセスはカプセル化を破るため、あなたが望むものでもありません。オブジェクト内に特定のインスタンスが必要な場合は、依存性注入 。それはクリーンでメンテナンス可能です。これには、たとえばモッククラスなどの他の実装と依存関係を簡単に交換できるという追加の利点があります。 a> 単体テスト の場合 。
ErichGamma でさえ 、シングルトンパターンの発明者の1人は、最近このパターンに疑問を投げかけています:
シングルトンは避けるのが最善です。