Zend Framework动作控制器用法示例


Posted in PHP onDecember 09, 2016

本文实例讲述了Zend Framework动作控制器用法。分享给大家供大家参考,具体如下:

动作控制器简介

为了使用Zend_Controller_Action类,需要在实际控制器类中把它子类化。

代码:

<?php
class FooController extends Zend_Controller_Action{
  public function barAction(){
    //do something
  }
  public function bazAction(){
    //do something
  }
}

说明:上述FooController类,定义了两个动作,bar和baz。

对象初始化

初始化更合适的方法来定制实例化是使用init()方法。该方法是在__construct()里的最后一个调用任务。

代码:

<?php
class FooController extends Zend_Controller_Action{
  public function init(){
    $this->db = Zend_Db::factory('Pdo_Mysql',array(
      'host'=>'myhost',
      'username'=>'user',
      'password'=>'xxxx',
      'dbname'=>'website'
    ));
  }
}

说明:上述代码就在初始化对象的同时实现了对数据库的连接。

访问器

动作控制器可以包括很多内容,如请求对象、响应对象、调用参数、请求参数。这些内容都可以通过相应的访问器方法进行访问。

请求对象可以通过getRequest()方法来获取,执行该方法将返回一个Zend_Controller_Request_Abstract实例。

代码:

$module = $this->getRequest()->getModuleName();//获取模块名称
$controller = $this->getRequest()->getControllerName();//获取控制器名称
$action = $this->getRequest()->getActionName();//获取动作名称

响应对象可以通过getResponse()方法来获取,执行该方法将返回一个Zend_Controller_Response_Abstract实例。

请求对象的请求参数包括任意GET或GET或_POST参数。为了读取这些参数,可以使用_getParam($key)或_getAllParams()方法。

视图集成方法

视图初始化

执行initView()方法将初始化视图对象。

解析视图

render()方法用于解析视图

代码:

<?php
class MyController extends Zend_Controller_Action{
  public function fooAction(){
    //Renders my/foo.phtml
    $this->render();
    //Renders my/bar.phtml
    $this->render('bar');
    //Renders baz.phtml
    $this->render('baz',null,true);//第三个参数,指定是否使用控制器目录作为子目录,true表示不使用
    //Renders my/login.phtml to the 'form' segment of the response object
    $this->render('login','form');
  }
}

其他方法

_forword(),该方法执行另外一个动作
_redirect(),该方法重定向到另外一个地方

希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。

PHP 相关文章推荐
一个好用的分页函数
Nov 16 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
php绘图中显示不出图片的原因及解决
Mar 05 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
跟我学Laravel之快速入门
Oct 15 PHP
详解PHP中instanceof关键字及instanceof关键字有什么作用
Nov 05 PHP
PHP查询分页的实现代码
Jun 09 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 PHP
浅谈php常用的7大框架的优缺点
Jul 20 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 #PHP
Zend Framework处理Json数据方法详解
Dec 09 #PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 #PHP
PHP 根据key 给二维数组分组
Dec 09 #PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 #PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 #PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 #PHP
You might like
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP echo()函数讲解
2019/02/15 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
基于React+Redux的SSR实现方法
2018/07/03 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
2020/09/11 Javascript
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
python入门教程之识别验证码
2017/03/04 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python3 使用pillow库生成随机验证码
2019/08/26 Python
python中@contextmanager实例用法
2021/02/07 Python
Python实现简单的2048小游戏
2021/03/01 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
英国女鞋购物网站:Moda in Pelle
2019/02/18 全球购物
预备党员的自我评价
2014/03/12 职场文书
中介业务员岗位职责
2014/04/09 职场文书
司机岗位职责说明书
2014/07/29 职场文书
八荣八耻演讲稿
2014/09/15 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL