プロジェクトの開発に symfony2.0 の使用に切り替えたので、いくつか質問したいと思います。
某草草
某草草 2017-05-16 16:46:03
0
1
521

以前は symfony1.4+propel を使ってプロジェクトを開発していましたが、今は symfony2.0 に切り替えましたが、doctrine を使ったことはありませんでしたが、公式のデフォルトは doctrine で propel が削除されています。
1. ドクトリンを使用する利点は何ですか?プロップとの関係。プロジェクトはシステムの側面です。
2. prop を使用する場合、group by はあまり役に立たないことがわかりました。
3.教義は多対多の M:N 関係をどのように処理しますか?

さらに、私は教義に関して起こり得る問題を投稿し、他の人を参照します:
1. ドキュメント エラー。署名されていない公式ドキュメントや生成された yml などの追加フィールド オプションを設定するには、オプションを使用します。
2. 外部キーは署名なしまたはデフォルトを指定できません
3. テーブルのリレーションシップは非識別リレーションシップです

ありがとう!

某草草
某草草

全員に返信(1)
刘奇

「標準」Doctrine でサポートされる関数は、PDO でサポートされるすべてのリレーショナル データベース (MySQL、PostgrelSql など) でサポートされる関数の集合です。つまり、A がサポートするが B がサポートしないものはサポートされません。デフォルトで Doctrine を使用します。ただし、Doctrine はスケーラビリティが高く、サードパーティのコードが豊富です。Google で Doctrine+Extensions を検索すると、たくさんの情報が得られます。

Doctrine の多対多のサポートは非​​常に優れており、十分です。

Symfony 2 でも Propel を使用できます。公式 Web サイトのドキュメントには専用の章があります。

Doctrine と Propel は両方とも優れています (データベース パッケージを自分で作成することも、良い仲間になることもできます)。比較する必要がある場合は、客観的な違いをいくつか挙げることができます。

    Doctrine はデータ マッパー + プロキシ モード、Propel はアクティブ レコード モードです (これは哲学的な質問です)。
  1. Doctrine のコミュニティがより活発になりました;
  2. Symfony 2 は Doctrine の Common ライブラリを使用してアノテーションベースの依存性注入 (DI) を実装します。
  3. Doctrine はより最新 (2.x) で、PHP 5.3 以降の機能サポートが向上していますが、Propel も追いつきつつあります。
  4. 上記のように、あなたが言及した署名なしの機能はデータベース間で使用できないため、当然デフォルトではサポートされていません。ただし、必要に応じてそれを行う方法はたくさんあるため、この回答には触れません。
Default はデータベース間で使用できる属性ではありませんが、Doctrine の Entity クラスでマップされたメンバー変数のデフォルト値を定義するだけで済みます。

Doctrine の約束は、ライブラリ間で使用できるということです。この観点から見ると、Doctrine は依然として人々に安心感を与えることができます。結局のところ、PostgreSql や SQLite を使用している人はまだたくさんいるので、一貫性を強制するために MySQL の考え方を使用しないでください。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート