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
Excel数据导入Mysql数据库的实现代码
Jun 05 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
破解.net程序(dll文件)编译和反编译方法
Jan 31 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
PHP导入导出Excel代码
Jul 07 PHP
PHP面向对象程序设计之对象生成方法详解
Dec 02 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP实现无限极分类的两种方式示例【递归和引用方式】
Mar 25 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
phpmyadmin里面导入sql语句格式的大量数据的方法
2010/06/05 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
select多选 multiple的使用示例
2014/06/16 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
详解ES6中的let命令
2020/04/05 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
2017/01/18 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
vue-router路由模式详解(小结)
2019/08/26 Javascript
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
python实现socket客户端和服务端简单示例
2014/02/24 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
DJango的创建和使用详解(默认数据库sqlite3)
2019/11/18 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
python程序如何进行保存
2020/07/03 Python
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
Python文件操作的面试题
2013/06/22 面试题
好的自荐信的要求
2013/10/30 职场文书
大客户销售经理职责
2013/12/04 职场文书
趣味体育活动方案
2014/02/08 职场文书
我的理想演讲稿
2014/04/30 职场文书
起诉书范文
2015/05/20 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
2016年小学党支部创先争优活动总结
2016/04/05 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS