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 相关文章推荐
PHP的栏目导航程序
Oct 09 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
hadoop常见错误以及处理方法详解
Jun 19 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
用php守护另一个php进程的例子
Feb 13 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP实现操作redis的封装类完整实例
Nov 14 PHP
CI框架的安全性分析
May 18 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 PHP
php使用CutyCapt实现网页截图保存的方法
Oct 03 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 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中使用反射技术的架构插件使用说明
2010/05/18 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
2017/06/06 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
windows环境下使用Composer安装ThinkPHP5
2018/05/18 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
jquery 取子节点及当前节点属性值的方法
2014/08/24 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
JS实现标签滚动切换效果
2017/12/25 Javascript
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
python中xrange用法分析
2015/04/15 Python
Python简单的制作图片验证码实例
2017/05/31 Python
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
Python中反射和描述器总结
2018/09/23 Python
python下载库的步骤方法
2019/10/12 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
什么是索引指示器
2012/08/20 面试题
人事专员岗位职责
2013/11/20 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
药剂专业毕业生求职信
2014/06/24 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
2015年教学工作总结
2015/04/02 职场文书
社区服务活动感想
2015/08/11 职场文书
iPhone13再次曝光
2021/04/15 数码科技
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
工厂无线对讲系统解决方案
2022/02/18 无线电
Python中的socket网络模块介绍
2022/07/23 Python