1

私は、私たちがしばらくの間取り組んできた Codeigniter MVC のバックグラウンドから来ました。大きなプロジェクトのために独自のフレームワークを展開する時が来ましたが、データベースの部分に来て、すぐに少し混乱しました。
Codeigniter では、すべての SQL データベース接続に ActiveRecord を使用しましたが、これはうまく機能していますが、別の部分ではないため、モデルにできるだけ少ないコードを記述して、データベースからのデータ。

Doctrine2 や Propel などの主要な代替案を確認しましたが、これらの構成ファイルと、これらのライブラリが実際にどれほど広範であるかという事実に非常に恐れています。

メンテナンスの観点から、スキーマの変更がロールアウトされたときに、明らかな MVC よりも多くのファイルを編集する必要がある ORM を選択することは本当に理にかなっていますか?

4

3 に答える 3

4

正直なところ、propelとdoctrineはおそらく現在市場で最高のphp ORMです。私はsymfonyフレームワークにバンドルされているpropelを使用していますが、ドキュメントをカバーすると、それは本当に大きな違いを生み、両方のORMは外に出る方法を知っていますあなたがネイティブSQLを必要とするときあなたの方法の。2つから1つ(推進/教義)を選び、時間をかけてドキュメントを確認することをお勧めします。最終結果はそれだけの価値があります。

于 2010-08-20T11:34:12.230 に答える
2

実際、Propel の場合、スキーマを変更するときに多くのファイルを編集する必要はありません (基本的な ORM の使用に固執する場合)。データベース スキーマ ファイル (schema.xml) を更新し、その後 propel-gen を実行すると、そのツールが必要な Propel クラスを指定したフォルダー (build.properties) に作成します。

om フォルダー内の BaseXXX クラスは、スキーマを変更して propel-gen を実行するたびに上書きされるため、決して編集しないでください。ビジネス ロジックをメイン フォルダー (デフォルトでは Base クラスを継承する) 内のクラスに追加するだけで、それらは一度だけ作成され、その後 propel-gen によって変更されることはありません。

于 2010-08-20T11:29:38.680 に答える
1

そして、Doctrineを使用すると、基本的に、schema.ymlファイル(YAML形式)に依存することができます。そのファイルを使用して、doctrineはSQL、モデルクラス、フィルター、....すべてを生成できます(もちろん、必要に応じてファイルを変更できますが、ほとんどのシナリオでは変更できません)

于 2010-08-21T03:58:02.060 に答える