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具体实现代码
Oct 12 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
php calender(日历)二个版本代码示例(解决2038问题)
Dec 24 PHP
php数组删除元素示例
Mar 21 PHP
php生成随机颜色的方法
Nov 13 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
php好代码风格的阶段性总结
Jun 25 PHP
PHP生成图片验证码功能示例
Jan 12 PHP
php删除数组指定元素实现代码
May 03 PHP
PHP实现的简单AES加密解密算法实例
May 29 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
介绍php设计模式中的工厂模式
2008/06/12 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
php实现读取内存顺序号
2015/03/29 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP asXML()函数讲解
2019/02/03 PHP
070823更新的一个[消息提示框]组件 兼容ie7
2007/08/29 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
node.js中的socket.io的广播消息
2014/12/15 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
基于jquery实现简单的分页控件
2016/03/17 Javascript
JavaScript中的继承之类继承
2016/05/01 Javascript
模拟javascript中的sort排序(简单实例)
2016/08/17 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
VUE2.0中Jsonp的使用方法
2018/05/22 Javascript
Vue动态修改网页标题的方法及遇到问题
2019/06/09 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python while 循环使用的简单实例
2016/06/08 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
霸气队列口号
2014/06/18 职场文书
投资意向书
2014/07/30 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
个人总结与自我评价
2015/02/14 职场文书
疾病证明书
2015/06/19 职场文书