2009-06-15 8 views
2

データベースとのやり取り(例:Pear MDB2やphpのPDO)にあらかじめ作成されたクラス/ apiを使用するか、独自のクラス/PHPデータベースクラス

私は1データベースでmysqlを使用し、比較的単純なSELECT、INSERT、UPDATE、DELETEクエリを実行します。

答えて

5

、私は事前に構築された上で、私自身のDBインタフェースクラスを使用することを好むが、他の人は、事前に構築されたAPIで誓います。独自のクラスを作成することで、ホイールを再開発することがほぼ保証されます。あらかじめ作成されたAPIを使用する場合は、通常、そのAPI内でコマンドを発行する方法を学ばなければなりません。プログラマーのチームと一緒に作業している場合は、よく文書化されたAPIを使用し、ベストプラクティスと手順にその使用方法を組み込むことをお勧めします。私の経験では、チームプログラミングと自家製のDBクラスがうまく混ざり合っていないと感じました。あなたはこのようなクラスを書いたことがない場合、私は言うだろう

ことの一つは、私はちょうどシーンの理解の後ろにいくつかを得るための学習機会としてそうすることをお勧めします。私が自分のクラスを書くことから得た経験は、私がよく知らないAPIを使った他のプログラマーの作業をデバッグするときに、何度か助けになりました。

[編集 - 固定いくつかの非常に悪い文法]

+1

+1車輪を再発明することは、車輪の働きを知るのに最適な方法です。もちろん、ほとんどの場合、優れた図書館があればそれを活用することができます。教育的な観点からは、あなた自身を圧倒すること(特にあなたの過ちから)を多く学ぶことが多いでしょう。私はそのような実験のために私自身のプロジェクトを選ぶだろう。 –

1

私は両方をやった - それは別のデータベースバックエンドに切り替えるために、通常は簡単だとして事前に作成したクラスを使用すると、おそらく保守のために最善です。しかし、私は自分のデータベースクラスの使いやすさが気に入っています。私の個人的なプロジェクトでは、私は通常、自分で作成します。

私はそれをサポートして快適だったしない限り、私は外に仕事のために自分を書きません - あなたはあなた自身を書き、顧客がデータベースを変更したい場合は、あなたが電話を取得する一つであるとしていることを覚えておいてください拡張を書き込む。

1

は、一般的なRDBMSのための多くの品質のAPIがあり、通常、あなたがそれらのAPIは実装していない特定の要件がない限り、それらを使用することをお勧めします。経験則としては、ホイールを再構成しないで、必要に応じてホイールを延長することです。

Zend Frameworkには、多くのRDBMS APIが用意されており、人気があります。フレームワークは、フレームワーク全体を使用する必要がないように設計されています。コードに必要なクラスをインクルードするには、単にincludeステートメントを使用する必要があります。

1

データベースのやりとりと同じくらい重要な点については、PDOやmysqliなどの既成のソリューションを使用しています。必要なものすべてがすでに作成されている場合、データベースアクセスクラスを書き直すのはどうしてですか?含まれていない機能が必要な場合は、いつでも拡張することができます。小さな個人的なプロジェクトのために

1

確かにどちらかの使用PDOや状況に直接mysqliの。

DB抽象化レイヤーを使用する唯一の理由は、を複数のRDBMで実行する必要がある、配布可能なソフトウェアを作成する予定がある場合です。あなたのターゲットを(ちょうどmysqlの)知っているとあなたはあなたが管理するアプリを書くつもりなら

、完全にDB抽象化レイヤーをスキップします。最終的に切り替えが必要な状況に陥ったときは、とにかく多くのクエリを書き直す必要があります(完全な標準SQLを使用しない限り、どこでもサポートされています)。

リファクタリングが重要であり、抽象化は物事を過度に複雑にするかもしれません。

1

私はフレームワークのファンではありませんが、いくつかの利点があります。職場では、データベース接続にZend Framework(Zend_DB)を使用します。

  1. Zend_DBの上に簡単にZend_Cacheを簡単に作成できます。
  2. Zend Logging APIを使用して、FirePHPにSQLクエリをログするのは簡単です(準備されたクエリとクエリの実行時間が含まれます)。

これら2つの機能は非常に便利です。

関連する問題