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 相关文章推荐
递归列出所有文件和目录
Oct 09 PHP
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
在PHP中执行系统外部命令
Oct 09 PHP
php str_pad 函数使用详解
Jan 13 PHP
PHP之COOKIE支持详解
Sep 20 PHP
php SQL Injection with MySQL
Feb 27 PHP
web目录下不应该存在多余的程序(安全考虑)
May 09 PHP
php开启openssl的方法
May 15 PHP
php等比例缩放图片及剪切图片代码分享
Feb 13 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
详解Laravel框架的依赖注入功能
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
php使用Session和文件统计在线人数
2015/07/04 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
arguments对象
2006/11/20 Javascript
javascript中的location用法简单介绍
2007/03/07 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jQuery 性能优化指南 (1)
2009/05/21 Javascript
jquery对表单操作2
2011/04/06 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
jquery 操作iframe的几种方法总结
2013/12/13 Javascript
js给页面加style无效果的解决方法
2014/01/20 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
JavaScript find()方法及返回数据实例
2020/04/30 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
python实现学生管理系统
2018/01/11 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
促销活动计划书
2014/05/02 职场文书
教师求职信范文
2014/05/24 职场文书
学雷锋标语
2014/06/25 职场文书
责任书格式范文
2014/07/28 职场文书
个人委托书范本汇总
2014/10/01 职场文书
资金申请报告范文
2015/05/14 职场文书
天河观后感
2015/06/11 职场文书
2016年母亲节广告语
2016/01/28 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
Win11远程连接不上怎么办?Win11远程桌面用不了的解决方法
2022/08/05 数码科技