0

場合によってはdoctrineを使用する以外に、codeigniterのアクティブレコードクエリを使用しても問題ないかどうかを知りたいと思っていました。場合によっては、doctrine クエリを作成するよりも、アクティブ レコードの方が簡単かつ迅速に作業を完了することができるためです。たとえば、教義で、テーブル内の行の総数を返す必要がある次のケースを考えてみましょう:

$query = $this->em->createQueryBuilder()
  ->select("count(c)")
  ->from($this->entity, "c")
  ->getQuery();
return $query->getSingleScalarResult();

vsアクティブレコード経由:

return $this->db->count_all_results($this->table);

アクティブなレコードでそれがいかに簡単かがわかります。そういうケースはもっとあるかもしれません。それで、両方を使用することに長所または短所はありますか?

また、操作を実行するために 2 つの異なるデータベース接続を使用しますか?

4

3 に答える 3

1

Doctrine と ActiveRecord の両方を同時に使用できます。ソードフィッシュはいくつかの問題を浮き彫りにしました。それに加えて、新しい開発者チームを導入すると、学習曲線はさらに長くなります。

いずれかを選択して、それに固執することをお勧めします。IMO、どちらも同じように優れています。現在のプロジェクトと個人的な好みに基づいて選択する必要があります。ここで非常に優れた比較を見つけることができます

Doctrine は Active Record の上に何を追加します - CodeIgniter?

おっしゃった2つのクエリですが、DQLを使えばシンプルに見えるかもしれません

$query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u');
$count = $query->getSingleScalarResult();
于 2012-07-17T00:12:34.270 に答える
1

場合によってはdoctrineを使用する以外に、codeigniterのアクティブレコードクエリを使用しても問題ないかどうかを知りたいと思っていました。

はい、大丈夫です。それに対する規則はありません。

また、操作を実行するために 2 つの異なるデータベース接続を使用しますか?

それらをどのように使用するかによって異なります。PHP の接続プールは、他の言語とは異なります。共通の接続を使用するには、両方を接続するカスタム クラスを作成する必要があるかもしれませんが、急いでいる場合に時間を費やす必要はありません。

長所と短所について

codeigniter がクリーンで効率的であり、codeigniter の一部として提供され、必要なほとんどすべてを提供するため、codeigniter に関する限り、アクティブ レコードに固執することをお勧めします。基本クラスを拡張していくつかの複雑な結合機能も提供する codeigniter フォーラムから拡張アクティブ レコード クラスを取得できます。

しかし、技術的には、2 つのレイヤーを使用することは問題ではありません。

于 2012-07-15T07:11:56.123 に答える