我正在寻找最佳模式/方法来访问单例类中的一个表数据(在ZF 1.x中)。详情:
在这个单例的函数中使用我的常规ZF模型类不是问题。它工作正常。现在它看起来像:
class My_ZF_Singleton
{
...
public function someFunctionInMySingleton()
{
...
$oModel = new Model_My_Model_Form_ZF_Application();
$oModel->letsDoSomeStuffWithDb();
...
}
...
}
但是我觉得这不是一个很好的解决方案,不像我想的那样魅力。它使我的单例类更多地附加到应用程序然后它应该是。我想使用一些其他模式来访问此db数据然后应用程序模型类。我会非常感谢任何线索或更好的解决方案 - 它不是“嘿,我被卡住了”或“嘿,我有错误” - 我只是在寻找更好的解决方案。
答案 0 :(得分:0)
不确定我是否完全明白你的问题,或者想要点可能,但我会尝试。
在ZF1中,数据库适配器通常是单例。 Multiple databases maybe connected但每个都需要一个唯一的标识。典型访问application.ini
或Bootstrap.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。
我希望至少接近这一点。