您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Zend+Framework+入门指南
ZendFramework1.5.x入门教程(简体中文版)ZendFramework入门教程(简体中文版)GettingStartedWiththeZendFrameworkAuthor:RobAllen,:1.5.2Copyright©2006,2008翻译:Altair(eniac2008@163.com)中文版本号:v0.12【翻译说明】这是ZendFramework的非常经典的入门教程,它的原作者RobAllen是《ZendFrameworkInAction》一书的作者。在翻译这个版本之前,只知道JasonQi翻译的0.9版(实际内容是关于ZendFrame0.6版本的)。因为自0.9版以来ZendFramework已经有了很大的变化,教程也有了比较大的改变。因此才决定重新翻译一次。翻译完成后才发现JasonQi翻译的昀新版本已经是1.4.3了。但毕竟已经翻译完成,而且Jason翻译的还不是昀新版本,因此还是决定将这个版本的翻译发布出来。因此,实际上这个翻译版本是根据英文版v1.5.2完全重新翻译的。这个翻译版本是比较初步的一个版本,里面可能还有不少翻译错误,主要是中文表述的问题,我会一直对其进行修订。如果你发现文中有一些错误,那很有可能是我在翻译的时候造成的,欢迎大家将发现的错误及时通知我,以便我能及时更新,以保证此中文版本跟原文一样的高品质。Thanks!本教程的英文版原文链接:翻译的本教程的早期版本可以在这里找到:本教程首发:://(Underconstruction)History:2008/05/30v0.01FirstRelease.2008/05/30v0.02BugFix2008/06/01v0.03BugFix2008/06/02v0.04BugFix2008/06/05v0.10/0.11对文字做了比较大的修订。2008/06/06v0.12BugFixWhat'sNew?v0.12P12“样式”小节中有关辅助函数类保存的地址helper应为helpers感谢phpeye.com/lxq73061指出此错误。v0.10对文字做了比较大的修订。v0.04(1)因原文中有关目录配置的地方有一处写得有点矛盾,因此我在v0.03版的译注是针对使用虚拟主机的配置的。对于不使用虚拟主机的情况,我的译注与文中后来访问的URL有冲突。新版中对此作了一些修改。原则上,v0.03版的译注是没有问题的。翻译:Altair(简体中文版v0.12)(UnderConstruction)第1页共25页ZendFramework1.5.x入门教程(简体中文版)本教程对使用ZendFramework来开发数据库驱动的应用程序作了非常基本的介绍。注意:本教程在ZendFramework1.5版下测试通过。在以后的1.5.x版本上,它也有很大可能正常运行,但在1.5以前的版本上本教程不能运行。Model-View-Controller架构下面是传统的PHP应用程序编写方式:?phpincludecommon-libs.php;includeconfig.php;mysql_connect($hostname,$username,$password);mysql_select_db($database);??phpincludeheader.php;?h1HomePage/h1?php$sql=SELECT*FROMnews;$result=mysql_query($sql);?table?phpwhile($row=mysql_fetch_assoc($result)){?trtd?phpecho$row['date_created'];?/tdtd?phpecho$row['title'];?/td/tr?php}?/table?phpincludefooter.php;?对于采用这种方式编写的应用程序来说,为了适应其生命周期中客户不断变化的需求,将不得不在代码的多个地方打上补丁,昀后导致它变得无法维护。提高程序的可维护性的一种方法是将这个程序的代码分成如下三个不同的部分(通常也是独立的文件):模型应用程序的模型部分关心的是欲显示的数据的细节。在上面的示例代码中模型是“news”。因此,模型通常关注的是应用程序的业务逻辑部分,关注的是如何使用数据库来读取和保存数据。视图视图关心的是用户显示的部分,它通常是HTML。控制器控制器将特定的模型和视图结合起来,保证将正确的数据显示到页面上。ZendFramework使用Model-View-Controller(MVC)架构。它将程序中不同部分独立开来,使得应用程序的翻译:Altair(简体中文版v0.12)(UnderConstruction)第2页共25页ZendFramework1.5.x入门教程(简体中文版)翻译:Altair(简体中文版v0.12)(UnderConstruction)第3页共25页开发和维护更加容易。需求使用ZendFramework需要下列环境:PHP5.1.4或以上版本支持mod_rewrite功能的Web服务器一些假设本教程假定你运行PHP5.1.4或以上版本,外加ApacheWeb服务器。Apache必须已安装并正确配置了mod_rewrite扩展。必须保证Apache已配置成支持.htaccess文件的模式。通常这可以通过在httpd.conf中将AllowOverrideNone改成AllowOverrideAll来实现。更详细的设置方法可以在Apache发行文档中找到。如果没有正确配置mod_rewrite及.htaccess,那么除了本教程的首页外你将不能看到任何其它的页面。获取框架ZendFramework可以从下载(有.zip或.tar.gz两种格式)。目录结构虽然ZendFramework对目录结构没有特别要求,但其手册上还是推荐了一种常用的目录结构,本教程也使用这种目录结构。这种结构要求你能完全控制Apache的配置文件,以便可以将大多数的文件存放在web的根目录之外。首先在web服务器的根目录下创建一个zf-tutorial目录1,然后分别创建下面的子目录来存放网站2的文件:\我们使用单独的目录来保存应用程序的模型、视图和控制器文件。public目录是网站的根目录3,这样就可1译注:按道理此处的Web服务器的根目录不应指网站的根目录,即不是Apache配置文件中的DocumentRoot目录。但实际上本教程中这个目录就是指的是DocumentRoot目录。原文这个地方写得与上文中“将大多数文件存放在web的根目录之外”的原则有点矛盾。2译注:此处的网站是将教程中开发的应用程序看作一个独立的网站的应用来看待的。因此,在下文中有时会将网站或(应用)程序的概念混用,只要记住它都是指我们在这个教程中正在开发的应用程序就可以了。ZendFramework1.5.x入门教程(简体中文版)翻译:Altair(简体中文版v0.12)(UnderConstruction)第4页共25页以通过URL来访问我们的程序。并且应用程序的绝大多数文件都不能直接通过Apache来访问,从而提高了系统的安全性。注意:在一个包括其它网站的服务器中,昀好还是为我们的网站创建一个虚拟主机,将其根目录设置为public子目录。例如你可以创建一个zf-tutorial.localhost的虚拟主机4:VirtualHost*:80ServerNamezf-tutorial.localhostDocumentRoot/var/这样就可以通过来访问该网站。(使用这种方式必须修改/etc/hosts或c:\windows\system32\drivers\etc\hosts文件,将zf-tutorial.localhost映射到127.0.0.1)。辅助的图像文件,JavaScript文件和CSS文件分别保存在public目录下的不同文件夹中。下载后的ZendFramework文件将保存在library文件夹中。如果需要使用其它的库文件,也可以放在该文件夹下。将下载的ZendFramework软件包,我使用的是ZendFramework-1.5.0.zip,解压到一个临时目录中,解压后的所有文件都放在ZendFramework-1.5.0子文件夹下,将它的子目录library/Zend拷贝到zf-tutorial/library/文件夹,现在zf-tutorial/library/目录中包含了Zend子目录。引导文件ZendFramework控制器类Zend_Controller支持网站使用“干净的URL”5。为此所有的请求都需要通过index.php进入。这就是通常所说的前端控制器(FrontController)设计模式。它为我们的应用程序的所有页面提供了一个中心控制点并确保程序的运行环境已经正确设置。要完成这一切,都必须在zf-tutorial/public目录下创建一个.htaccess文件:zf-tutorial/public/.htaccess#ZendFrameworkrewrite规则RewriteEngineonRewriteCond%{REQUEST_FILENAME}!-fRewriteRule.*index.php#安全性考虑:不允许列表目录内容Options-Indexes#PHP设置php_flagmagic_quotes_gpcoffphp_flagregister_globalsoffphp_flagshort_open_tagon3译注:此处意味着我们必须将.htaccess及index.php两个文件保存在public目录下。4译注:如果配置虚拟主机,必须将此处的DocumentRoot以及Directory中的路径换成自己的实际目录。5译注:所谓“干净的URL”是指URL中不含那些杂乱的参数,如:,而不是=add。ZendFramework1.5.x入门教程(简体中文版)RewriteRule非常简单,可理解为“对所有不能映射到磁盘上已存在的文件的url,都用index.php来代替”。为了安全起见,我们设定了一些PHP的ini设置;我们还将short_open_tag选项设置为on,因为将来视图文件可能会用到它。当然这些设置可能已经正确设置过了,但我们必须确保这一点。注意只有在使用PHP模块(mod_php)的方式下才可以在.htaccess文件中使用php_flag标记。如果使用CGI/FastCGI模式,必须保证在php.ini中正确设置了这些参数。注意,为了让.htaccess起作用,必须在httpd.conf中将配置指令AllowOverride设置为All.引导文件:i
本文标题:Zend+Framework+入门指南
链接地址:https://www.777doc.com/doc-5939967 .html