2011-07-04 4 views
2

最近、私はMVCベースのフレームワークに取り組んでいます。フレームワークは現在半分しか終わっていません。私は今どこでデータベース抽象レイヤを使うべきかを見ていきます。私のフレームワークに適したデータベースシステムを選択する

ほとんどのプロジェクトでは、通常、PDOを親クラスとして使用し、ヘルパ関数を組み込んだカスタム構造を使用しています。

しかし、私は時代にとどまらなければなりません。そして、最近のDBALではORMが大きくなるはずですが、私はそれを使ったことはありません。私はORMの概念を理解しています。する。

あなたはそれがあるシステムの種類を見ることができるように私のフレームワークのソースがここにあります、現時点では何もDBALので、今までに何等の

ちょうどモデルローダーがありません私が知っているものに固執すべきであり、いくつかの機能を追加してPDOを使用するとよいでしょう。

ORMをベースにしたDBALを使用して、未知数に挑戦する必要があります。使用することに関していくつか質問があります。

まず、「最高のORM」に関してStackOverflowに多くの質問と回答があることを知っていますが、次のことを念頭に置いて、あなたは何をお勧めしますか?

  • 軽量かつ十分にテスト
  • モデル
  • と統合することができるようドライバーズ
  • の幅広い選択肢は、それが自分のスコープですか私は、少なくともそれはベンダー名です

が付いていていますRedBeansを見て私はそこのコンセプトが好きですが、モデルの外には届かない多くの機能があります。

あなたのアドバイスは何ですか?

答えて

0

ORM層は、あなたは、ほとんどのリレーショナルデータベースのために、抽象的にデータベース層を可能にします。

良いものはクラスを拡張することができますので、自分のニーズに合ったORMをもっと流暢に使うことができます。あなたはPDOでやったのと同じようにORMレベルでやっています。

Doctrineを他のSymfonyコンポーネントや独自のクラスと簡単に統合することをお勧めします。 This plog post shows how it works。 DoctrineはおそらくPHP世界で最も高度なORMとDBALです。

+1

Doctrineの問題は、名前空間を使用しているという事実です。多くの言語では名前空間は重要ですが、私は個人的にはPHPがどこにも用意されておらず、別の点は名前空間 – RobertPitt

+0

@RoberPitt:すべてのPHPが名前空間を使用しています。指定しないと、それはグローバルなものです。したがって、旧式の理由から古いPHPバージョンをサポートする必要がない限り、名前空間を明示的に指定するPHPコードを使用してはならないはずはありません。それ以外の場合、Doctrine Version 1.2は、グローバル名前空間にあるPHP 5.2.3+用です。 – hakre

関連する問題