首页 > 开发 > PHP > 正文

Zend Framework 配置与应用

2024-05-04 23:06:38
字体:
来源:转载
供稿:网友

环境配置

Apache要开启rewrite模块即 :LoadModule rewrite_module modules/mod_rewrite.so

Zendframe work默认使用pdo连接数据库,需开启pdo和pdo_mysql(或其他数据库)扩展入口文件目录(下面即将要配置的public目录)允许重写  AllowOverride All

项目配置

是zendframe work主框架文件解压压缩包,并将解压放到library目录中得到目录结构如下配置虚拟主机,其中public目录为入口文件所在目录(根目录),为了安全此目录设置为web跟目录即可 /configs/application.ini为配置文件,可以配置错误信息以及数据库配置

default为默认模块

访问 域名/index/index 会访问到IndexController.php中的indexAction方法以及渲染views/scripts/index/index.phtml视图

增加模块

例如增加admin模块,复制default文件夹重命名为admin  注意此时类名应这样定义Admin_IndexController,即每个类名前加前缀Admin_,文件名不变. 如果要访问admin模块则访问地址  域名/admin/index/index 应用 控制器中的 init()方法为初始化方法:执行任何一个方法前都将执行此方法. 因此可以在此做一些初始化以及权限的限制.

zf框架中的视图文件默认不存在模板引擎,可以直接书写html代码或者php代码

控制器中定义$this->view->user = '张三'; 那么在视图中echo $this->user;即可输出张三.

  1. $this->getHelper('ViewRenderer')->setNoRender();//不渲染默认视图  
  2. $this->render('index');//渲染自定义的视图  
  3. $request = $this->getRequest(); //获取请求变量 post/get  
  4. $request->getParams();//获取所有请求的数据post/get  
  5. $this->getRequest()->getParam('id');//根据指定的下标获取对应数据  
  6. $request->getPost(); //获取所有post数据  
  7. $request->isPost();//是否是post请求  返回true或false 

数据库的操作

不使用模型的情况:获得db对象 $db = Zend_Registry::get('dbAdapter');//获取注册变量(设置的时候 通过Zend_Registry::set('dbAdapter',$dbAdapter);)参见Bootstrap.php

增加数据:

$data = array('uname' => 'zhangsan','stat' => 1,'account' => 10);

$db->insert('userinfo',$data); //这里的userinfo是表名

echo $db->lastinsertid(); //获取最后自增id

删除数据:

$db->delete('userinfo','id=2');

修改数据:

$db->update('userinfo',array('uname' => 'ijijij'),'id=5');

查询数据:

$db->fetchAll("select * from userinfo");

建立模型,在application/default/models目录下,一般文件名和表名相同首字母大写例如Userinfo.php

模型内容

  1. class Userinfo extends Zend_Db_Table{  
  2.       protected $_name ="userinfo"//可以重新定义表名  
  3.   protected $_primary = 'id';   //可以重新定义主键  

实例化模型$db = new Userinfo();

增加数据:

$data = array('uname' => 'rrrr','stat' => 44,'account' => 10);

$db->insert($data);

删除数据:

$db->delete('id=5');

修改数据:

$db->update($data,'id=6');

查询数据:

根据主键查询$db->find(1);或者$db->find('1,2,3');

取多条数据

  1. $order = 'first_name';  
  2. $count = 10;     $offset = 20;  
  3. $db->fetchAll($where$order$count$offset);  
  4. 取所有数据  
  5. $db->fetchAll()->toArray();  
  6. Zend文件缓存  
  7.     $frontendOptions = array(  
  8.    'lifeTime' => 30, // 缓存生命期 单位 秒  
  9.    'automatic_serialization' => true  
  10. );  
  11. $backendOptions = array(  
  12.     'cache_dir' => APPLICATION_PATH . '/cache/' // 放缓存文件的目录  
  13. );  
  14. // 取得一个Zend_Cache_Core 对象  
  15. $cache = Zend_Cache::factory(  
  16.  'Core',  
  17.                              'File',  
  18.                              $frontendOptions,  
  19.                              $backendOptions 
  20.                         );  
  21.      
  22.     echo '  
  23. ';  
  24.     //先在缓存中查询  
  25.     if(!$result = $cache->load('userinfo')) {  
  26.     $result =  $this->db->fetchAll('select * from userinfo');  
  27. //缓存的内容,名字  
  28.     $cache->save($result'userinfo');  
  29. else {  
  30.     echo "  
  31. 此内容已生成缓存!!  
  32. ";  
  33. }  
  34. //$cache->remove('userinfo'); //清空缓存  
  35. print_r($result); 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表