2009-07-02 10 views

答えて

-1

私は以前DataMapperで作業したことはありませんが、ORMとRORが非常に似ているCakephpフレームワークをチェックすることができます。

2

私はDoctrineが同様の方法で実装されていると信じています。

+0

Doctrineは、PHPの最も洗練されたORMツールです。 – Daff

0

PropelはPHP5のためのORMで、あなたもphpDataMapperプロジェクトはRubyのDataMapperのようになり、具体的に作成されたXPDO

1

に見えるかもしれません。あなたがプロジェクトに興味があるなら、私を助けてください!私はRuby DataMapperを知っている人が増えているので、プロジェクトをより速く展開できるようになっています。

GitHubのプロジェクトページ: https://github.com/vlucas/phpDataMapper/tree

0

私はあなたが提案のためthis questionを見てみることをお勧めします。

アクティブレコードではなくデータマッパーのパラダイムを具体的に実装しているORMをお探しの場合は、GacelaPHPをご覧ください。

Gacela特長:

  • データマッパー
  • 外部キーマッピング
  • 協会マッピング
  • 依存マッピング
  • コンクリートテーブル継承
  • Queryオブジェクト
  • メタデータのマッピング
  • レイジー&積極的なロード
  • 完全Memcacheのサポート

他のORMソリューションがあまりにも肥大化しているか、リモートで複雑なものを開発するときに厄介な制限があります。 Kacelaは、DBおよびmemcacheとのすべてのやりとりにPDOを使用することによって、最小限に膨らみを維持しながら、Data Mapper Patternを実装することで、アクティブレコードアプローチの限界を解決します。

0

db.php orm(http://dbphp.net)リストにあるすべてを実行しますが、memcacheをサポートしていません。代わりにapcユーザキャッシュ関数を使用し、\ db \ cache基本クラスを拡張するだけでキャッシュエンジンクラスをオーバーライドできます(もともとこれはapcuを使用してをdb.phpの長いキャッシュクラスである):だから

class long extends cache 
    { 
     function store ($name, $value) 
     { 
      if (is_bool($value)) 
      { 
       \apc_delete ($name); 
      } 
      else 
      { 
       \apc_store ($name, $value); 
      } 
     } 
     function fetch ($name) 
     { 
      return \apc_fetch ($name); 
     } 
     function clear() 
     { 
      \apc_clear_cache ('user'); 
     } 
    } 

あなたはmymemcache extends \db\cacheのようなクラスを実装し、あなたがそのようなあなたのORMにあなたのキャッシュエンジンを取り付けることができ、その後、この3つのメソッドをオーバーライドする場合:

$database->context->caches[\db\cache::long] = new mymemcache();

物事はスムーズに進みます。

私はそのような\ db \ cacheを拡張するだけで、特定の環境向けにカスタムキャッシュエンジンを開発しました。

関連する問題