多くのクライアント向けに動的にカスタマイズされた汎用アプリをPHPで開発しています。
client
クライアントのスタイルと設定をロードするクラスがあります。
私の質問は:
そのオブジェクトをセッションに保存するのは良い習慣ですか?(各ページにオブジェクトを作成するのではなく、これが最善の解決策だと思います。これには、多くのmysqlクエリが必要になります。
セッションを扱う際に考慮する必要のあることがいくつかあります。
さまざまな大きな値をセッションに保存しないでください。好みは通常十分に小さいので、これはあなたの場合は問題ではないと思います。
オブジェクトをセッションに保存するとき。リアルタイムの更新を取得できない場合があります。たとえば、同じユーザーが2つの別々のブラウザやマシンを使用してログインし、1つで設定を変更するとします。この場合、他の1つには更新されたカスタマイズがありません。それは大きな問題ではありませんが、要件によって異なります。
ここでは他に問題はありません。実際、セッションに小さな値を格納し、dbクエリを回避するための有効で優れたソリューションです。
それが変わらず、MySQLクエリを何度も何度も呼び出す結果になる場合は、それは良い考えです。
MySQLクエリ(および一般的な関数)はメモリ/ CPUを大量に消費し、PHPのページの読み込み速度に影響を与える可能性があるため、作業量が少ないほどパフォーマンスが向上します。
戻り値が絶えず変化する場合は、変化させない方がよいでしょうが、セッションで可能な値を保存してください。
クライアントがブラウザを閉じると、セッションが終了すると思います。クッキー(ロードされたクライアント)に保存する場合は?セキュリティには良くありません。
ミニデータをセッション(ロードされたサーバー)に保存する場合、つまりサーバーでメモリを使用していることを意味します。クライアントが多いとどうなりますか?
したがって、データベース接続は、各ページのプロセスの最後に破棄する必要があります。使用する心配はありません。