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里的JS打印函数
Oct 09 PHP
PHP4(windows版本)中的COM函数
Oct 09 PHP
经典的PHPer为什么被认为是草根?
Apr 02 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
Aug 06 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
php实现设计模式中的单例模式详解
Oct 11 PHP
ThinkPHP入口文件设置及相关注意事项分析
Dec 05 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP addslashes()函数讲解
Feb 03 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
用php如何解决大文件分片上传问题
Jul 07 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
PHP中date()日期函数有关参数整理
2011/07/19 PHP
input file获得文件根目录简单实现
2013/04/26 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
PHPExcel实现的读取多工作表操作示例
2020/04/14 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
2014/05/20 Javascript
JavaScript数据存储 Cookie篇
2016/07/02 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
jQuery实现立体式数字动态增加(animate方法)
2016/12/21 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
vue-cli如何快速构建vue项目
2017/04/26 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
序列化模块json代码实例详解
2020/03/03 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
Python tkinter和exe打包的方法
2020/02/05 Python
如何使用python传入不确定个数参数
2020/02/18 Python
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
会计自我鉴定范文
2013/10/06 职场文书
应届生骨科医生求职信
2013/10/31 职场文书
工商企业管理实习自我鉴定
2013/12/04 职场文书
股份合作协议书
2014/04/12 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang