2009-07-02 77 views

回答

-1

我從來沒有在DataMapper之前工作過,但你可以看看CakePHP框架它具有與ROR非常相似的ORM。

2

我相信Doctrine是以類似的方式實現的。

+0

同意,Doctrine是imho最複雜的PHP ORM工具。 – Daff 2009-07-02 08:50:29

0

行走是PHP5的ORM,你也可以看看XPDO

0

我建議你看一看this question的建議。

如果您正在查找實現Data Mapper範例而非Active Record的ORM,那麼我強烈建議您查看GacelaPHP

Gacela特點:

  • 數據映射
  • 外鍵映射
  • 協會測繪
  • 依賴映射
  • 混凝土表繼承
  • 查詢對象
  • 元數據映射
  • 懶&預先加載
  • 全部內存緩存支持

其他ORM解決方案過於臃腫或開發任何遠程複雜,當有繁重的限制。 Kacela通過實施Data Mapper模式解決了活動記錄方法的侷限性,同時通過使用PDO處理所有與數據庫和內存緩存的交互,從而保持最小膨脹。

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這樣的:

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

而且事情會順利進行。

我只是通過擴展\ db \ cache來爲特定環境開發自定義緩存引擎。

相關問題