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
五款常用mysql slow log分析工具的比较分析
May 22 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
PHP中strlen()和mb_strlen()的区别浅析
Jun 19 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
Yii配置与使用memcached缓存的方法
Jul 13 PHP
laravel学习教程之存取器
Jul 30 PHP
php封装的验证码类分享
Feb 26 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
php实现微信支付之企业付款
May 30 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 PHP
php去除数组中为0的元素的实例分析
Nov 17 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给图片加水印的实现代码
2020/04/18 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
2013/03/24 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
JavaScript阻止浏览器返回按钮的方法
2015/03/18 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
2019/09/29 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Django Aggregation聚合使用方法解析
2019/08/01 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
Python如何存储数据到json文件
2020/03/09 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
美国领先的精品家居照明和装饰产品在线零售商:LightsOnline.com
2018/01/23 全球购物
Skip Hop官网:好莱坞宝宝挚爱品牌
2018/06/17 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
学校安全管理责任书
2014/07/23 职场文书
委托书的写法
2014/08/30 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2014年公司工作总结
2014/11/22 职场文书
2015年组织部工作总结
2015/04/03 职场文书
写给老师的保证书
2015/05/09 职场文书
解析CSS 提取图片主题色功能(小技巧)
2021/05/12 HTML / CSS
python之django路由和视图案例教程
2021/07/26 Python