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学习之简单计算器实现代码
Jun 09 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
Jan 11 PHP
浅析PHP微信支付通知的处理方式
May 25 PHP
PHP小教程之实现双向链表
Jun 12 PHP
php读取csv文件并输出的方法
Mar 14 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
php文件管理基本功能简单操作
Jan 16 PHP
PHP静态成员变量
Feb 14 PHP
thinkphp分页集成实例
Jul 24 PHP
php中上传文件的的解决方案
Sep 25 PHP
Yii2框架控制器、路由、Url生成操作示例
May 27 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数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
基于php和mysql的简单的dao类实现crud操作功能
2014/01/27 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
js 异步处理进度条
2010/04/01 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
详解javascript实现自定义事件
2016/01/19 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
vue data引入本地图片的两种方式小结
2019/11/13 Javascript
python使用webbrowser浏览指定url的方法
2015/04/04 Python
总结Python中逻辑运算符的使用
2015/05/13 Python
python numpy格式化打印的实例
2018/05/14 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
在django中自定义字段Field详解
2019/12/03 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python 使用多线程创建一个Buffer缓存器的实现思路
2020/07/02 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
python定义具名元组实例操作
2021/02/28 Python
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
任命书模板
2014/06/04 职场文书
2014年社团工作总结范文
2014/11/27 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
储备店长岗位职责
2015/04/14 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技