2012-12-26 30 views
0

我正在尋找最佳模式/方法來訪問singleton類中的一個表數據(在ZF 1.x中)。具體爲:單身類中的Zend模型訪問 - 最佳方法

  • 我有一個單獨的類(就像Zend_Date的運算爲例),使我一些基本的東西,抽象從實際應用非常超脫。
  • 在這個類中,有兩點我需要訪問一個數據庫表,我需要對其進行一些基本操作。

這不是使用這個單身的我經常ZF模型類的內部功能的問題。它工作正常。現在,它看起來像:

class My_ZF_Singleton 
{ 
    ... 
    public function someFunctionInMySingleton() 
    { 
     ... 
     $oModel = new Model_My_Model_Form_ZF_Application(); 
     $oModel->letsDoSomeStuffWithDb(); 
     ... 
    } 
    ... 
} 

但我覺得在我的骨頭,這不是一個很好的解決方案,沒有那麼魅力,我想是。它使我的單身類更貼近應用程序,然後它應該。我想使用其他模式來訪問這個數據庫然後應用程序模型類。我會非常感謝任何線索或更好的解決方案 - 這不是一個「嗨,我卡住探針」或「嘿,我有一個錯誤」 - 我只是尋找更好的解決方案。

回答

0

不知道我很理解你的問題,或者想要點可能,但我會嘗試。

在ZF1中,數據庫適配器通常已經是單身。 Multiple databases maybe connected,但每個都需要唯一標識。典型的訪問默認適配器安裝在application.iniBootstrap.php

$adapter = Zend_Db_Table::getDefaultAdapter();

一種常見的方式,以提供對單個數據庫表,並給訪問Zend_Db_Table API是建立一個DbTable model

class Application_Model_DbTable_TableName extends Zend_DbTable_Abstract 
{ 
    protected $_name = 'Table_Name' //required if classname does not match table name 
    protected $_primary = 'primary_key_column_name'//optional, use if primary key is not 'id' 
} 

您可以將此類作爲單個表的默認數據庫適配器的實例(在映射器中工作得非常好)。您也可以添加函數來覆蓋或添加到默認的Zend_Db_Table api。

我希望這至少接近。

相關問題