我的Zend配置文件中的数据库详细信息如下:
resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = bar
resources.db.params.dbname = foo
每当我使用Zend_DB_Table类时,这些都用于设置默认的db适配器,这很好。
现在我正在编写一个不扩展Zend_DB_Table或任何其他类的模型类,我将需要访问DB对象。最好的方法是什么?我正在考虑在bootstrap中实例化它并将其放入注册表中,以便它也可以在其他地方使用。这是好习惯吗?
如何根据配置选项对其进行实例化,而不在代码中复制它们?我是否将事物加倍,因为它被列为资源?我是否应该尝试从我的新模型类中获取资源?
谢谢..!
答案 0 :(得分:2)
要将它放入模型中,我只需将其设为属性,可在模型的构造函数中设置,例如
class MyModel
{
private $db;
public function __construct(Zend_Db $db)
{
$this->db = $db;
}
您可以使用此
检索控制器中的数据库资源$db = $this->getInvokeArg('bootstrap')->getResource('db');
您还可以找到已在Zend_Registry
中注册的资源
$db = Zend_Registry::get('db');