4

私は現在、PHP で OOP を使用してコーディングすることを学んでおり、データベース クラスと抽象化レイヤーに頻繁に遭遇します。私は大きな課題として CMS のコーディングを行っており、あまり深く考えずにデータベース クラスのコーディングを開始しました。

私は実際には、CRUD操作を処理するクラスを作成するのではなく、MySQLiをそのまま使用することに傾倒しています(そのまま使用するのはかなり良いと思います)。すべてのものを処理するクラスが本当に必要ですか?

そうでない場合、データベースに接続するための最良の方法は何でしょうか。アプリケーションの開始時にそれを行い、接続を渡しますか? または、欠落しているデータベース クラスをコーディングすることの大きな利点は本当にありますか?

エラー処理はそのような利点の 1 つになると考えていますが、クラスをできるだけ MySQLi に近づける場合、それはクラスを進める十分な理由ですか?

4

2 に答える 2

7

主な利点は、すべてのコードをデータベース オブジェクトに通すことができる場合です。将来、データベースの実装を簡単に変更できます。あなたは mysqli に向けて学んでいると言っていますが、PDO に変更した行の途中で、すべてをリファクタリングする必要があると言っています。

カスタム データベース オブジェクトを使用すると、コードの残りの部分に影響を与えることなく、統合を簡単に変更できます。たとえば、objects->connect() 関数は現在とまったく同じように呼び出すことができますが、基になるコードは変更され、すべてがカスタム クラス内にあるため、変更は最小限ですみます。

これは多くの利点の 1 つにすぎません。クエリを実行して結果を保存するためにデータベース オブジェクトとやり取りするカスタム クラスは、非常によく見られます (MVC のモデル部分 - 通常は、選択/更新/削除を実行する関数を持つ RecordSet などと呼ばれることが多い共通の基本オブジェクトを拡張します)。 /等)。繰り返しになりますが、実装をあるメソッドから別のメソッドに簡単に変更できます。

私が説明したことは、一般的なオブジェクト指向プログラミングにとって非常に一般的な利点です。別の利点については、あなたの常識の答えをご覧ください。

于 2013-04-22T11:47:08.197 に答える