位置: 编程技术 - 正文

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)

  • 采购价格含税吗
  • 什么是增值税扣缴义务
  • 小规模纳税人收入是含税还是不含税
  • 开票人和复核人收款人能是一个人吗
  • 财务报表申报错误怎么办
  • 收付转记账凭证图片
  • 分公司小规模
  • 发票丢失了能开红字发票吗
  • 形式发票需要签字盖章吗
  • 平均分摊法计算公式
  • 年底预收货款如何入账
  • 电子承兑汇票如何撤回
  • 外购原材料自用要进项转出吗
  • 自建的固定资产入账价值具体包括哪些
  • 股权转让金是什么意思
  • 增值税开票税额交税差额怎么入账
  • 定期定额自行申报表计税依据
  • 财务杠杆系数简单计算方法
  • 汽车维修公司如何经营粉丝群才能让潜在客户注意到我们
  • 准予抵扣的进项税额有哪些
  • 供应商是收款人还是付款人
  • 电脑屏幕突然黑屏怎么回事
  • windows10如何设置密码
  • 计提坏账准备的比例
  • win11启动方式
  • 外购货物用于职工福利进项税额可以抵扣吗
  • 应付票据转应付账款分录
  • 购货返利怎么做账
  • 迷迭香怎么养殖方法
  • 进项税额转出余额在贷方怎么处理
  • 国外供应商如何审核
  • php特性包括
  • 税控盘是干什么用的操作有风险吗
  • 归一化的几种方法
  • chcp命令
  • 只有销售才能使你成功的名言
  • 人力资源企业税收风险
  • 以股权换股权税务问题
  • 建筑企业异地预缴增值税计算
  • 固定资产一次性折旧账务处理
  • Mysql半同步复制原理及问题排查
  • 转出未交增值税最终怎么转平
  • 接待客户的住宿费发票是开谁的
  • 个税申报表中的年金是什么意思?
  • 印花税申报怎么更正采集处理
  • sqlserver复制需要有实际的服务器名称
  • 一次还本付息债券定价公式
  • 固定资产补提折旧的账务处理
  • 收到厂家返利如何计算成本
  • 进口化妆品品牌大全
  • 异地办理税务登记需要什么资料
  • 购买原材料的支出
  • 经营性现金净流量公式
  • 企业所得税免税和减半征收
  • 材料已入库后收回怎么办
  • 固定资产报废后怎么处理
  • 收购一家公司需要多少股份
  • 单独计价作为固定资产入账的土地为什么不计提折旧
  • 没有发票就不能保修吗
  • 公司支付劳务工资怎么做账
  • 滞纳金的收取范围是什么
  • 毛利和净利的区别大白话
  • 怎么删除服务器管理的服务
  • windows终端美化
  • 升级到xp系统以后怎么办
  • linux 安装vs
  • centos安装lvm
  • win8启用或关闭windows功能
  • centos怎么编写c语言
  • win7 64位纯净版系统c盘空间显示与实际占用空间不对的解决方法图文教程
  • 物联网版块股票
  • cocos2d-x教程
  • python怎么计数
  • shaders initialized
  • unity类库
  • 在windows中快捷键的作用
  • python asyncio
  • 文化传媒公司能卖多少钱
  • 小规模纳税人开专票需要交税吗
  • 财务年中工作总结简短
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设