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_Flame(Version:Progress)的原代码
Oct 09 PHP
PHP 根据IP地址控制访问的代码
Apr 22 PHP
php和数据库结合的一个简单的web实例 代码分析 (php初学者)
Jul 28 PHP
PHP分多步骤填写发布信息的简单方法实例代码
Sep 23 PHP
php更新mysql后获取影响的行数发生异常解决方法
Mar 28 PHP
基于empty函数的判断详解
Jun 17 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
使用Linux五年积累的一些经验技巧
Jun 20 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
Jun 21 PHP
php语言的7种基本的排序方法
Dec 28 PHP
php双层循环(九九乘法表)
Oct 23 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 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数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
php中判断文件存在是用file_exists还是is_file的整理
2012/09/12 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
JavaScript之数组(Array)详解
2015/04/01 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
JS实现带缓冲效果打开、关闭、移动一个层的方法
2015/05/09 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
动态加载权限管理模块中的Vue组件
2018/01/16 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
python中map()函数的使用方法示例
2017/09/29 Python
Python实现App自动签到领取积分功能
2018/09/29 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
解决python中导入win32com.client出错的问题
2019/07/26 Python
mac使用python识别图形验证码功能
2020/01/10 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
python 实现IP子网计算
2021/02/18 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
怎样写好自我鉴定
2013/12/04 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
入党自我鉴定
2014/03/25 职场文书
销售人员工作自我评价
2014/09/21 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
python文件目录操作之os模块
2021/05/08 Python
Redis入门教程详解
2021/08/30 Redis
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers