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设计模式 FlyWeight (享元模式)
Jun 26 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
destoon数据库表说明汇总
Jul 15 PHP
php实现的常见排序算法汇总
Sep 08 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
php下载文件超时时间的设置方法
Oct 06 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
PHP远程连接oracle数据库操作实现方法图文详解
Apr 11 PHP
laravel 实现向公共模板中传值 (view composer)
Oct 22 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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
拼音码表的生成
2006/10/09 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
Git命令之分支详解
2021/03/02 PHP
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
解决vue数组中对象属性变化页面不渲染问题
2018/08/09 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
[29:59]完美世界DOTA2联赛PWL S3 Forest vs access 第二场 12.11
2020/12/13 DOTA
Python写的Socks5协议代理服务器
2014/08/06 Python
python自动翻译实现方法
2016/05/28 Python
Python实现按特定格式对文件进行读写的方法示例
2017/11/30 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
Python 3.8正式发布重要新功能一览
2019/10/17 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
2016/01/20 HTML / CSS
介绍一下Java中标识符的命名规则
2014/02/03 面试题
职业生涯规划设计步骤
2014/01/12 职场文书
个人四风问题整改措施思想汇报
2014/10/04 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
你为什么是穷人?可能是这5个缺点造成
2019/07/11 职场文书
导游词之上海豫园
2019/10/24 职场文书