Zend framework 的数据适配困扰了我很久,来分享一下我之前配置的细节。
首先有些控制器需要调用数据库,有些不需要,不需要调用数据库的控制器调用会浪费资源,因此 我们新建了一个父类,供其他需要使用数据库的controller调用。
代码如下:
<span style="font-family:Microsoft YaHei;font-size:18px;"><?php
//做一个父类,供其他的controller的类来继承。
class BaseController extends Zend_Controller_Action{
public function init(){
//初始化数据库适配器
$url = "../application/configs/application.ini";
$dbconfig = new Zend_Config_Ini($url,"mysql");
$register = Zend_Registry::getInstance();
Zend_Registry::set('config',$dbconfig);
$db = Zend_Db::factory($dbconfig->resources->db);
Zend_Db_Table::setDefaultAdapter($db);
}
}
</span>然后在需要使用数据库的控制器中只要加上一条包含即可:
<span style="font-family:Microsoft YaHei;font-size:18px;"> Require_once‘BaseController.php’;</span>然后就是注意configs下的application.ini文件,
可在最后写入:
<span style="font-family:Microsoft YaHei;font-size:18px;">[mysql]
resources.db.adapter= "PDO_MYSQL"
resources.db.params.host= "localhost"
resources.db.params.username= "root"
resources.db.params.password= "root"
resources.db.params.dbname= "votedb"
resources.db.params.charset= "utf8"
resources.db.isDefaultTableAdapter= TURE
resources.db.params.drivers_options.1002= "set names UTF8;"</span>OK了,还可以参考网上的其他的类似方法,比如还可以写在index.php中,不过我认为还是我这种方法好一点~
本文介绍了一种在ZendFramework中优化数据库适配的方法,通过创建一个基类(BaseController)来管理数据库连接,使得只有需要使用数据库的控制器才会加载数据库适配器,从而提高系统的效率。
140

被折叠的 条评论
为什么被折叠?



