私が取り組んでいるこのプロジェクトのベスト プラクティスとパフォーマンスに関していくつか質問があります。壮大な質問をお許しください。
私は現在、PHP と MySql を使用してテキスト ベースのゲームを構築しています。これは、これまでのコア ファイルで約 2,500 行です。現在、これは完全にモジュール化された関数のライブラリです。データ アクセスに使用されるものもあれば、データ操作に使用されるものもあります。
私の最初の質問は次のとおりです。ItemManager という 1 つのクラスには、データベース内のゲーム アイテムを追加、更新、および削除するための多数のメソッドが含まれています。これらのメソッドの唯一の共通点は、データベースと対話することです。現在、コンストラクターは mysqli オブジェクトを要求し、それをすべての関数で使用します。ただし、MongoDB をプロジェクトに追加すると、これらの関数の一部が別のデータベースと対話する可能性があります。
これらすべての関数を単純に静的にすることは、受け入れられるか、または好ましいでしょうか? オブジェクトが 1 つしかない場合にオブジェクトをインスタンス化する理由はわかりません。また、クラス メンバーを維持する必要もありません。では、静的メソッドを使用する必要がありますか? なんで?
2 番目の質問: PHP BESIDES のモジュール性でクラスを使用する利点を誰かが理解するのを手伝ってくれますか (関数のファイルで同じ効果を達成できるため)。Java のバックグラウンドを持つ私は、オブジェクトがアプリケーションの存続期間を通じてデータと状態を維持するため、永続的な環境での OOP の利点を認識しています。ただし、PHP では、スクリプトの存続期間はほんの一瞬であり、すべての状態情報はデータベース内に保存されます。ほとんどすべての関数はデータベースを操作するだけですが、その目的は何ですか? 関数を呼び出すだけでオブジェクトをインスタンス化しても意味がありませんか? クラスのオブジェクトをインスタンス化せずに、分類されたデータ操作クラスを含む完全に静的なクラスを作成できますか?関数のファイルよりもクラスを使用する必要がある理由は何ですか? 基本的に同じではないですか?完全に静的な関数は受け入れられますか?
お時間をいただきありがとうございます。その質問を短いテキストに分割する方法がわかりませんでした。申し訳ありません。