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与SQL注入攻击[三]
Apr 17 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
May 07 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
PHP使用PDO连接ACCESS数据库
Mar 05 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
PHP接收json 并将接收数据插入数据库的实现代码
Dec 01 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
Mar 09 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 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中使用Oracle数据库(6)
2006/10/09 PHP
php获取url字符串截取路径的文件名和扩展名的函数
2010/01/22 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
php删除指定目录的方法
2015/04/03 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
使用GruntJS构建Web程序之构建篇
2014/06/04 Javascript
JS点击链接后慢慢展开隐藏着图片的方法
2015/02/17 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
vue多级多选菜单组件开发
2020/09/08 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
微信小程序新闻网站详情页实例代码
2020/01/10 Javascript
Python解析nginx日志文件
2015/05/11 Python
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
HTML5 Canvas玩转酷炫大波浪进度图效果实例(附demo)
2016/12/14 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?
2015/08/04 面试题
珍惜资源保护环境的建议书
2014/05/14 职场文书
感恩老师演讲稿600字
2014/08/28 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
公司档案管理制度
2015/08/05 职场文书