デスクトップアプリケーションは、多くの場合、持続する単一のデータベース接続を使用します。ただし、PHPおよび他のほとんどのWeb言語/フレームワークでは、これは当てはまらないはずです。単一の長期接続の代わりに、ページの読み込みごとに短期接続を使用します。アプリケーション全体を考えるのではなく、各ページの読み込みのプロセスを考えてください。PHPでは、データベースまたは$ _SESSIONまたは他の場所にデータを永続化しない限り、他のページロードは他のページを認識しません。
PHPのシングルトンパターンは、ページの読み込み中のシングルトンの1つです。最初は「ポイントは何ですか?それは単なるページの読み込み」のように見えるかもしれませんが、大規模なアプリケーションに到達すると、各ページの読み込みは重要でない操作ではないことが明らかになります。Drupalのようなシステムでは、ページの読み込みごとに数十から数百のデータベースクエリを実行できます。
ああ、そしてシングルトンパターンは悪い習慣と見なされ、後であなたを噛むでしょう。実際、すべてのアプリケーションで回避する必要があります。より良いパターンは、DAOパターンやファクトリパターンのようなものです。どうか、自分を救い、シングルトンを使用しないでください(私は何度もその間違いを犯しました)。
ページの読み込み間でオブジェクトを永続化する場合(ほとんどすべてのアプリケーションで非常に必要です)、それがデータベースと$_SESSION変数の目的です。APC(http://php.net/manual/en/book.apc.php )のような代替のキャッシュオプションを使用することもできます)。アプリケーションは、データベースで見つかったものに基づいて、必要なものを再構築できる必要があります。たとえば、ユーザーが作成されます。そのユーザーのデータをデータベースに永続化します。誰かがやって来てユーザーについて知りたいときはいつでも、それをデータベースから引き出してユーザーオブジェクトを再作成します。もう1つの例は、ユーザーがログインしたままにすることです。そのため、ユーザーがログインしているかどうか、および誰としてログインしているかを確認するために、ページの読み込みごとにチェックされる$_SESSIONに何らかの変数を保持します。いくつかのチェックを行ってから、データベースからログインしているとユーザーが言っていることをユーザーにロードします。