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中文字母数字验证码实现代码
Apr 25 PHP
PHP中include()与require()的区别说明
Mar 10 PHP
php后退一页表单内容保存实现方法
Jun 17 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
Jan 22 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
php图像验证码生成代码
Jun 08 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
PHP7 错误处理机制修改
Mar 09 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的正则处理函数总结分析
2008/06/20 PHP
基于MySQL体系结构的分析
2013/05/02 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
js下用gb2312编码解码实现方法
2009/12/31 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
JS与C#编码解码
2013/12/03 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
利用原生JS自动生成文章标题树的实例
2016/08/22 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
2016/10/15 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
跟混乱的页面弹窗说再见
2019/04/11 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
[08:53]DOTA2每周TOP10 精彩击杀集锦vol.9
2014/06/26 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
2018/01/02 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python爬虫中多线程的使用详解
2019/09/23 Python
TensorFlow 显存使用机制详解
2020/02/03 Python
Python调用Windows命令打印文件
2020/02/07 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
css3给背景图片加颜色遮罩的方法
2019/11/05 HTML / CSS
html5默认气泡修改的代码详解
2020/03/13 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
便利店投资创业计划书
2014/02/08 职场文书
时尚女魔头观后感
2015/06/04 职场文书
暑期家教宣传单
2015/07/14 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
解析laravel使用workerman用户交互、服务器交互
2021/04/28 PHP
TypeScript 内置高级类型编程示例
2022/09/23 Javascript