ORMを追加したい中規模のプロジェクトを継承しました。私はすべての通常のオプションDoctrine、Propel redbeanをチェックアウトしましたが、それらはすべて、特定の実装でビジネスオブジェクトを汚染するように要求しているようです。私が本当に好きなのは、ゲッターやセッターなどでビジネスオブジェクトを渡し、ORMに値を保持させることです。私の主な関心事は、アプリケーションをORMに関連付けることではありません。ビジネスオブジェクトをポーリングしないPHP ORM
0
A
答えて
2
Doctrine2を検討してください。それはActiveRecord(私はあなたが "汚染"と考える)を実装していませんが、代わりにDataMapperパターンを実装しています。あなたはannotationsを使ってDoctrineを設定できます。
<?php
/** @Entity **/
class Post
{
/** @Id @GeneratedValue @Column(type="integer") **/
protected $id;
/** @Column(type="string") **/
protected $title;
/** @Column(type="text") **/
protected $body;
}
そして
<?php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
require_once 'Doctrine/Common/ClassLoader.php';
$loader = new \Doctrine\Common\ClassLoader("Doctrine");
$loader->register();
$dbParams = array(
'driver' => 'pdo_mysql',
'user' => 'root',
'password' => '',
'dbname' => 'tests'
);
$path = 'path/to/entities';
$config = Setup::createAnnotationMetadataConfiguration($path, true);
$entityManager = EntityManager::create($dbParams, $config);
..................
$entityManager->persist($post);
+1
Doctrineを見たすべてのものの@FractalizeRが最高の抽象化を持っているようです。オブジェクトクラスに含まれている関連モデルに対して特別な "Doctrine" ArrayCollection型を使用していたのは、それを汚染していたと思ったのです。とにかく例では。 – code4pay
関連する問題
- 1. PHPの長いポーリング、過度のデータベースアクセスなし
- 2. チャットアプリのスケーリング - 短いポーリングとロングポーリング(AJAX、PHP)
- 3. ビジネスオブジェクト
- 4. ZMQポーリングが動作しない
- 5. udev monitorがポーリングなしで遅い
- 6. ビジネスオブジェクトが遅いオブジェクトデータソース?
- 7. JSONとしてビジネスオブジェクトをシリアライズ
- 8. ビジネスオブジェクトへのエンティティオブジェクト
- 9. 一般的なDuplicateValidationRule(重複しているビジネスオブジェクトのチェック)
- 10. PHPの日付( 'M')はphp.net日( 'M')に応じ
- 11. LINQビジネスオブジェクトとしてのエンティティ
- 12. MySQLとPHPを使用したJQueryポーリングどうやって?
- 13. エンティティフレームワークで1:M - > M:1を使用している問題
- 14. ビジネスオブジェクト - 無効データプロバイダ
- 15. エンティティフレームワークとビジネスオブジェクト
- 16. ビジネスオブジェクトとエンティティ
- 17. データアクセスレイヤーとビジネスオブジェクト
- 18. ポーリングなしでC#を使用してアクティブなウィンドウを検出
- 19. ポーリング、彗星、WebSocketsなど
- 20. ポーリングを使用したソケットレスポンスタイムアウト
- 21. ASP.NET MVCモデルとビジネスオブジェクト
- 22. ビジネスオブジェクトと動的SQL
- 23. ASP.NETデータセットとビジネスオブジェクト/ ORM
- 24. Wicketとマルチスレッドのビジネスオブジェクト
- 25. c#DAL - ビジネスオブジェクトのインターフェイス
- 26. socket.io - xhrポーリングで切断イベントが発生しない
- 27. ビジネスオブジェクトをモックするケース
- 28. PHPはポーリングを開始し、スクリプトからクエリを作成します
- 29. なぜm [1] - m [0]は3を返します。ここで、mは3x3の行列ですか?
- 30. RxJSポーリング
'ORM'にアプリを抱き合わせていないが - プログラマは**リアル**問題を解決するため、哲学者は、抽象的問題のための抽象ツールを見つけます。私が言いたいのは、ORMに使用できる抽象的なコードを書くことは、実際には意味をなさないということです。あなたはすべての賛否両論を持ついくつかのツールを使用するか、何年もの間pixieダストを探します。 – zerkms
:-)うん、@zerkms、あなたの言っていることを知っている、私は問題のいくつかは、特定のORMで弾丸をかむだけの自信がないと思う。 – code4pay
私が意図したことを説明するだけで(意図は無礼ではありませんでした)、具体的な解決方法は抽象的ではありません。これにより、効率的で便利なコードを書くことができます。だから、もし私があなただったらDoctrine2を選ぶでしょう。 – zerkms