位置: 编程技术 - 正文

Zend Framework+smarty用法实例详解

编辑:rootadmin

推荐整理分享Zend Framework+smarty用法实例详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Zend Framework+smarty用法。分享给大家供大家参考,具体如下:

一、Zend Framework简介

Zend Framework使用模型-视图-控制器(Model-View-Controller(MVC))结构。这个用来把你的程序分离成不同部分使得开发和维护变得容易。

运行Zend Framework需要:PHP 5.1.4 (或更高) 、Web 服务器支持 mod_rewrite功能,本实例采用Apache。 从这里 Zend Framework,有两种格式.zip或者.tar.gz。

二、Zend Framework的配置

1、目录结构

虽然Zend Framework 没有强求使用一个标准的目录结构,但是还是有一些通用的目录结构。这个目录结构假设你完全控制Apache 的配置。(下面以本机做例子,各位需根据自己的情况进行更改,我的服务器的根目录指向的是Web文件夹)

引用:

Web/test/ /webapp/controllers /models /templates/templates_c /library /webroot/images /js/css

我们已经把程序中的模型、视图和控制器的文件分离到不同的子目录中。支持的图像,脚本和CSS 文件被存放在webroot 目录下的不同子目录中。下载的Zend Framework 文件放在 library 目录下。如果我们还需要其他库文件,都可以放在这里。在这个实例中,我们使用到了Smarty模版技术,所以Smarty 的库文件我们也应该放在library文件下!

2、启动文件

1) 配置.htaccess

我们使用单一的入口文件index.php来对我们的程序进行访问,这给我们提供了程序中所有页面的中心点并确保运行环境配置正确。我们用.htaccess 文件来实现这个目的,添加.htaccess 文件在test 的根目录中,内容如下:

2)配置Apache与此同时,我们还需要对apache进行一些设置,打开apache的配置文件 httpd.conf。

1、找到“#LoadModule rewrite_module modules/mod_rewrite.so 这句话,把前面的#去掉!

2、然后再找到“AllowOverride None 改成AllowOverride All,重新启动apache即可。

3、启动文件index.phpindex.php放在test的根目录下,下面是index.php的内容::

4)启动文件说明

Zend Framework 是这样设计的,所有的文件必须包含在 include_path 中。我们也把我们的模型目录包含在 include path 中,这样我们以后就能很容易加载我们的模型类。一开始,我们必须 include Zend/Loader.php,这样我们就能访问Zend_Loader 类,在Zend_Loader 类中有静态方法使我们能够加载其他Zend Framework 类,例如:

Zend_Loader::loadClass 加载已经命名的类。它是把下划线转换成路径隔离符来实现的,并在最后加上.php 后缀。这样,类Zend_Controller_Front 将从Zend/Controller/font.php 加载。如果你在你的类库里使用相同的命名规则,就可以用Zend_Loader::loadCass()来加载它们。我们需要加载控制器类和路由类。

前端控制器用路由类来映射请求的 URL 到正确的 PHP 函数,然后显示页面。为了能使路由工作,需要解决 URL 的哪一部分是指向index.php 的路径,这样它就可以在那个点后面寻找url 元素。

我们需要配置前端路由器,这样它就知道从哪个目录里找出我们的控制器。

设置抛出异常,但是在服务器真正工作以后,我们不应该显示错误信息给用户看。

由于在本实例中我们使用Smarty模版技术。所以我们关闭ZF本身自带的view。$frontController->setParam('noViewRenderer', true);设置基地址,方便以后设置url来进行跳转。$frontController->setBaseUrl('/test');Zend_Registry::set('font', $frontController);接下来,我们对Smarty进行设置。首先我们在类库中引用了Smarty.class.php这个类。并且对它的路径进行了设置,以便让ZF知道它的位置。:

在这里,我们用ZF的对象注册表(Registry)来对$view来进行存贮,这样,在程序的任何对方,我们都可以调用它来进行操作。Zend_Registry::set('views', $views);设置好了以后,运行程序。$frontController->dispatch();

这个时候,你如果运行 来进行测试。会发现有个错误类似 Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (index)' in…这个是因为我们还没有设置好我们程序。

3、设置程序

在设置文件以前,理解Zend Framework 如何组织页面很重要。每个应用程序的页面叫做 action ,许多 action 组成控制器。例如,对于这样一个格式的 URL 来说,控制器是news, action 是view,后面的id和1,分别是往这个actionView传递的参数和值。

Zend Framework 控制器把 index 作为一个缺省的action 而保留为特别的action。这样,对于 这样的url,在news控制器里的 index action将被执行。Zend Framework 也保留了一个缺省的控制器,也叫做index。这样, 将执行 index控制器下的 action index。

Zend Framework+smarty用法实例详解

4、设置控制器

现在可以设置控制器了。在Zend Framework 里,控制器是一个必需被叫做{Controller name}Controller 的类。注意{Controller name}必需以大写字母开头。并且,这个类必须在叫做{Controller name}Controller.php这样的文件中,这个文件还必需在特定的控制器目录中。强调一下,{Controller name}必需以大写字母开头并其他字母一定是小写。每个action是在控制器类里的public 函数,名字必需是{action name}Action。在这里,{action name}应该以小写字母开头。这样在文件 test/webapp/controllers/IndexController.php 里我们的控制器类叫做 IndexController,位置:test/webapp/controllers/IndexController.php:

我们现在有三个我们想使用的action,直到我们设置好视图,它们才工作。其中function init是个特殊的函数,简单的说,它就是在controller中的构造函数时调用的函数。

每个action的 URL 如下:

in IndexController::indexAction() in IndexController::addAction()

现在,我们在程序里有个能工作的路由器和每个页面的 action。

5、设置视图

因为本实例使用的的是Smarty模版,所以和ZF本身的View视图在实现过程中,稍微有点区别!下面我直接介绍在ZF里是任何使用Smarty的。在使用Smarty之前,我们应该先取出在index.php里定义的$view,并且定义好,需要在模版显示的变量。:

下面我们开始做视图文件,它们的位置是test/webapp/templates/index/index.tpl:

代码:

这个时候,输入 world 了。

这样,一个简单的实例就完成了。下面我们结合Xmlrpc技术来实现一个稍微复杂一点的实例!

三、XMLRPC

1、什么是XMLRPC

XMLRPC,顾名思义,就是应用了XML技术的RPC。那么什么是XML和RPC了?

RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算 ,是为了提高各个分立机器的“互操作性 而发明出来的技术。

XML和RPC一样也是一个东西的缩写,这个东西就是eXtensible Markup Language,中文意思就是可扩展标记语言,标记语言就是那种用尖括号(<>)括来括去的那种语言,比如说HTML。XML的可扩展性也体现在它只定义了语言的格式,而并没有定义过多的关键字,也就是通常所说的标记(Tag),所以用户可以自由地选择定义标记。它的这种自由和简单的语法规则也使得它广为流传,用来表示各种数据。

2、在ZF中使用XMLRPC

1)创建IndexController.php

下面我们来完成一个实例,为了方便起见,就不建立新的Controller,把刚才我们建立的IndexController修改一下,就能使用了!另外我们还需要建立一个XMLRPC的服务端程序。位置在WEB服务器的根目录上(在本机中,也就是在test文件的上级目录中,取名为1.php),由于XMLRPC使用到了类库,我们还需要下载libphpxmlrpc放在library文件夹下!

文件位置:test/webapp/controller/IndexController.php:

2)创建显示模版文件

位置:test/webapp/templates/index/index.tpl:

hello,下面演示的是利用Xmlrpc调用远程服务器方法的实例!并且我们把得到的结果传递到另外的一个函数中去!

代码:

位置: test/webapp/templates/index/add.tpl:

3)创建XMLRPC服务器端程序

位置:web/1.php:

OK,现在打开http;//.0.0.1/test/看看。刚才建立的那个XMLRPC应该已经建立起来了,输入数字,测试一下吧!

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于zend framework框架的PHP程序设计有所帮助。

Zend Framework连接Mysql数据库实例分析 本文实例讲述了ZendFramework连接Mysql数据库的方法。分享给大家供大家参考,具体如下:在看这些之前请确保你正确加载了PDO扩展。做法是编辑php.ini。手

Zend Framework基本页面布局分析 本文实例讲述了ZendFramework基本页面布局方法。分享给大家供大家参考,具体如下:ZendFramework的页面布局模块——Zend_Layout——既可以跟MVC一起使用,也

Zend Framework缓存Cache用法简单实例 本文实例讲述了ZendFramework缓存Cache用法。分享给大家供大家参考,具体如下:phprequire'Zend/Loader.php';Zend_Loader::loadClass('Zend_Cache');Zend_Loader::loadClass('Zend_Conf

标签: Zend Framework+smarty用法实例详解

本文链接地址:https://www.jiuchutong.com/biancheng/291063.html 转载请保留说明!

上一篇:ThinkPHP使用Smarty第三方插件方法小结(thinkphp smarty)

下一篇:Zend Framework连接Mysql数据库实例分析(framework 4 client profile)

  • 留底税额有没有时间
  • 补交以前年度城建税和滞纳金怎么做账
  • 接受捐赠材料需要交税吗
  • 退休工资缴纳个人所得税税率表
  • 出口退税代理费用大概多少
  • 一般纳税人没有开票要交税吗
  • 房地产预售款收条怎么写
  • 进项税超过销项怎么办?
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 个体工商户在税法规定的享有免税优惠的期限内
  • 税收优惠政策没有任何法律风险
  • 公司注销有哪些原因
  • 销售退回冲减主营业务收入吗
  • 审计费的会计科目
  • 建筑业劳务分包怎样算税
  • 收到专项拨款属于什么科目
  • 小规模企业核定征收
  • 如何核对往来账明细
  • 企业所得税税率2.5% 5% 25%
  • 工商年报人数是12月人数吗
  • linux acl配置命令
  • 服务业公司取得的成果
  • 右键新建菜单中没有文本文档怎么办
  • retrorun.exe - retrorun有什么用 是什么进程
  • 承租集体土地如何确权
  • PHP:Memcached::touchByKey()的用法_Memcached类
  • PHP:stream_get_line()的用法_Stream函数
  • PHP:bzcompress()的用法_Bzip2函数
  • 同一控制下的控股合并与非同一控制下的控股合并
  • 来料加工业务的会计处理
  • 固定资产清理属于什么类科目
  • php面向对象优点,缺点
  • 脱不下孔乙己的长衫对应下一句
  • php怎么设置图片的大小
  • 无偿划转资产涉及产权转移应交税
  • 增值税留抵税额科目如何使用
  • 应交税费下的科目设置
  • 转让股权个税的计税基础
  • 销售赠品入什么科目
  • 营业成本包含折旧和摊销吗
  • 个体工商户纳税申抿
  • 资产负债表应付职工薪酬是负数是什么原因
  • 小型微利企业所得税按什么预缴
  • 外购货物用于公益性捐赠
  • 外贸进项税额怎么算
  • 可供出售金融资产的会计处理
  • 企业所得税退税会计分录
  • 收到以前年度银行手续费发票分录
  • 商标权属于什么科目
  • 应交税金等于销项减进项吗
  • 出口退回的增值税计入哪个会计科目
  • 税控盘费用进什么科目
  • 审计如何判断跨期
  • 营改增后租金收入交什么税
  • 生产型企业账务处理方法
  • 旅游费的发票可以进成本吗?
  • 资金调拨账务处理
  • mysql在本地主机创建用户账号
  • centos6.10安装教程
  • iis w3svc
  • mysql8安装步骤
  • solaris 11.3
  • u极速u盘装系统
  • 升级bios后无法启动
  • 安装ubuntu后无法进入windows
  • Win8/8.1下通过dism命令解压install.wim文件步骤
  • WIN7系统如何设置开机密码和屏保密码
  • cocos2dx scrollview
  • Basic Layout——基本布局
  • 对于cookie的描述
  • 动态创建菜单
  • unity集成到app后变大了
  • Android studio 无法勾选sdk
  • javascript学习指南
  • 非房地产企业土增税扣除有哪些
  • 北京通州国税局进面分数2022
  • 江西国税局电话客服热线
  • 税务宣传标语2021
  • 地方税务局怎么样
  • 税务局怎么知道房屋出租
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设