-2

必要なときに常にアクセスしたいコード内のオブジェクトが必要です。データベースへの接続を保持するデータベース オブジェクト。これは静的オブジェクトであり、接続は変更されません。そして、ユーザーレベル、ユーザー名、およびIDを保持するユーザーオブジェクトがあります。

これを行う方法に関するいくつかの投稿と記事を読みました。私は3つの解決策を見つけました - シングルトンを使用する - オブジェクトをシリアライズしてセッションに保存する - 依存性注入を使用する.

グローバルが悪いので、シングルトンは悪いです。オブジェクトをシリアル化してセッションに保存するのは、私には見苦しいように思えます (理由は正確にはわかりません)。依存性注入を使用すると、コンストラクターがパラメーターで混雑します。

ここで 2 つの質問があります。言及していない別の方法はありますか? - 上記のオブジェクトへの全体的なアクセスを許可する最善の方法は何ですか?

4

2 に答える 2

1

You are messing up everything.

What is the best method to grant overall access to objects mentioned above?

No, there is no such method at all

They are different objects and require different treatment.

for the database object you have but little choice.
You can create it with every request and use it throughout processing (of course you will need to make it global to use inside other classes).
Or use it as a static singleton object, which will be called each time you need to interact with database. It will establish a database connection at the first call and eventually use it until the end of the processing request. With another request it will start over.

For the user object both transparent serializing in a session and dependency injection are good.
However, creating a user object on each request is not that bad idea. In your place I won't torture sessions such a way.

于 2012-04-23T06:49:39.413 に答える
-1

ハードな現実について申し訳ありませんが、ソフトウェア開発の専門用語を使用していますが、ノウハウがありません... DIはコンストラクターまたはセッターメソッドを使用できます...また、pimple、synfonyなどのDIコンテナーを使用できますまたは flow3 ... または自分で書きます。

私たちは、シングルトンを許可しない内部フレームワークに取り組んでおり、ダイレクト セッション アクセスは許可されていません。また、まあ -> 建築について学ばなければならないかもしれません。

利用可能ないくつかの良い本があります。

于 2012-05-24T21:18:35.120 に答える