2011-08-08 9 views
1

私の質問は一般的なORMを目指すのではなく、特にDoctrine 2!PDOの代わりにDoctrine 2を使用するのはどの条件で意味がありますか?

軽度に複雑なPHPアプリケーションはすべて、データベースを使用します。

M、V、Cを分離することが理にかなっている限り、MをDBアクセスレベルとハイレベルオブジェクトに分離することは理にかなっています。

は今、私はちょうど教義2で表面的な外観を持っていたし、確かに私はFETCH_CLASS、FETCH_OBJECTなどPDO-の機能を使用する場合と比較して、このツールから得ることができますどのような何らかの理由を見ることができないこれまですべていいとダンディようだが、合理的に構造化されたクラスのコレクションと組み合わせたFETCH_INTO。

もちろん、自分でコードを書く必要があります。その違いは、PHPアプリケーションを最初から構築するのではなく、フレームワークを使って開発するときに得られるスピードとはかけ離れているように見えます。

あなたは教義知っているもしそうなら、多分あなたは条件ドクトリン2を真剣に検討すべきか、B/Cの下に私に言うことができます。

それが開発、実質的に(原因特定の機能へのスピードアップ)

これは私の意見では理にかなっている唯一の理由です。

答えて

0

あなたが正しいです、それはかなりの量で開発をスピードアップします。もう1つの比較は「好み」です - Doctrine 2はもっと真に「オブジェクト指向」と感じます。また、Doctrine 2はクエリを実行して実行時間を短縮するためにトランザクションを使用しますが、前述のようにPDOを使用して実行することができますが、より多くのコードを記述する必要があります。

私はあなた自身のPHPライブラリを持っていて、フレームワークを使っているようです。それは開発プロセスをスピードアップするだけなので、大規模なアプリケーションを書く人々にとっては明らかな勝者です。

+0

私はD2がスピードアップする日ではありませんでした。それは実際に私が質問したものです。 /トランザクションはexecをスピードアップしませんが、データ転送をより安定させます。 /私の質問は、複雑なWebアプリケーションでさえ、実際に多くのロジックが処理されないため、db-layer用のライブラリがあまり必要ないという私の印象を狙っています。オブジェクトとバックにテーブルをマッピングするだけです。 – Raffael

+1

これは事実です。ORMは、オブジェクトへのテーブルのマッピングとあなたのためのバックを処理します。自分のライブラリを書くのと似ていますが、なぜホイールを再発明するのですか? Doctrine 2はかなり軽量です。とにかく確実にライブラリが必要な "本当の"ツリーのような複雑なデータ構造については、http://www.slideshare.net/jwage/doctrine-2-not-the-same-old-php-orm – gcolley

+0

を参照してください。 D2はフィールド<=>のプロパティを超えていないように見えるので、通常の関係的に編成された情報はオブジェクトに簡単にマッピングされます。これはpdoを使って非常にうまくいくでしょう。このPHP機能でまだ作業しているかどうかはわかりません。 – Raffael

関連する問題