2009-07-11 15 views
14

最近は人気があるようですし、私はこのようなものを使用しての長所と短所は何ですか思っていたが2つありますか?ORMとPHPのアクティブレコードパターン? <a href="http://codeigniter.com/user_guide/database/active_record.html" rel="nofollow noreferrer">http://codeigniter.com/user_guide/database/active_record.html</a>:

もう一つは、ORM(例えば教義)です。これらを使用する利点は何ですか?彼らは正確にPHPの特定じゃないのにあなたはこれらの質問を見てとることができ

答えて

19

ActiveRecordのはオームズで一般的なパターンです。 Doctrineは、ActiveRecordのスタイルを使用するORMです。

いくつかの教義のようなツールを使用する利点:

  • データベースの独立性:コードが異なるのDBへの移植が容易であるべきです。例えば、私は頻繁にSQLiteのを使用してテストし、コード内の変更なしで生産してMySQLやPostgreを使用しています。
  • これは、書かなければならないコードの量を減らします。アプリケーションコードの大部分は、データベースとの通信を処理します。 ORMは、そのほとんどの世話をするので、あなたは、実際のアプリケーションを書くことに集中することができます。もちろん

、彼らは欠点がない来ていない:それは複雑になることが

  • オームズをまっすぐにSQLを使用するよりも遅くなるよう

    • Doctrineは重いです、あなたが持っているものにいくつかの重量を追加します経験の浅いプログラマのために理解できないことがあります。
  • +0

    が付属していますが、ここでは、適切な説明です: Doctrine 2は、PHP 5.4+のオブジェクトリレーショナルマッパー(ORM)であり、PHPオブジェクトに透過的な永続性を提供します。ドメイン/ビジネスロジックと永続性の完全な分離を目指して、データマッパーパターンを心臓部で使用します。リレーショナルデータベース管理システムです。出典:http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html#what-is-doctrine – ZeeCoder

    +1

    @ZeeCoder私は誤解されるかもしれませんが、2009年に私がこの回答を書いたと考えると、 Doctrine 2はまだ出ていませんでした。 Doctrine 1はActiveRecordスタイルのAPIを2番目のバージョンよりも多く持っていました(そして、はるかに良い、私が追加してください)。 –

    +0

    私は悪いです。私は今までDoctrine 2を使ったことがあります:) – ZeeCoder

    2

    私は軽くて理解しやすいようにしました。でも、私はあなたが「ActiveRecord'ish」によって何を意味するのか分からない、それ自身のMooToolsはベースクラス・ジェネレータ:)

    http://www.schizofreend.nl/Pork.dbObject/

    はそれをチェックアウト:)

    関連する問題