getting-started-with-zend-framework

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ZendFramework入门教程(简体中文版)GettingStartedwithZendFrameworkByRobAllen,©2006,2009翻译:虫少侠,【翻译说明】这是ZendFramework的非常经典的入门教程,它的原作者RobAllen是《ZendFrameworkInAction》一书的作者。小虫也不是ZF高手,在开始学习ZF时前辈推荐了这个教程,小虫就边学习边练习边翻译。其中疏漏和用词不当之处,请见谅。在看这个教程之前,我也找过一些其他的教程,但对新手来说都不是那么容易。这个教程算是我见过最适合初学者的教程。翻译过程参考了Altair翻译的1.5.2入门教程,特此感谢。本教程详细地介绍了使用ZendFramework来开发数据库驱动的MVC架构应用程序的过程。注意:本教程在ZendFramework1.8和1.9两个版本中测试通过。在以后的1.x系列版本中,它有很大可能会顺利运行,但在1.8以前的版本中不能运行。英文原版地址:如果发现翻译有问题,请发邮件至chongzi@roln.cn或到我的博客任意文章后面留言需求使用ZendFramework需要满足下面的条件:•PHP5.2.4或以上版本•支持mod_rewrite或类似功能的WEB服务器本教程的一些假设本教程假设你在运行PHP5.2.4或更高版本的ApacheWeb服务器。而且Apache已安装并正确配置了mod_rewrite扩展。必须保证Apache支持.htaccess文件,这通常中通过修改httpd.conf中的AllowOverrideNone为AllowOverrideAll来实现。更详细的设置方法可以在Apache发行文档中找到。如果没有正确配置mod_rewrite及.htaccess,那么除了本教程的首页外你将不能看到任何其它的页面。获取ZendFramework可以到这个链接获取ZendFramework,有.zip和.tar.gz两种格式,链接在该网页的最底部。安装Zend_ToolZendFramework提供了新的命令行工具。我们首先安装这个工具。注:ZF1.9.0中的Zend_Tool不能用Windows中运行。因为写这个教程时,ZF最新版本是1.9.0,所以我用1.8.4来代替。在Windows中安装Zend_Tool•在C:\ProgramFiles\中新建文件夹ZendFrameworkCli•双击打开下载的ZendFramework-1.8.4PL1-minimal.zip文件•复制其中的bin和library文件夹到C:\ProgramFiles\ZendFrameworkCli中•将bin目录添加到系统pash环境变量中•打开“控制面板”的“系统”项•选中“高级”选项卡,打开“环境变量”•在“系统变量”中找到“Path”,双击•到输入框最后面添加;C:\ProgramFiles\ZendFrameworkCli\bin,按“确定”完成修改(不要漏写分号)•重启在OSX和Linux中安装Zend_Tool•双击Downloads文件夹下已下载的ZendFramework-1.9.0-minimal.zip解压•将解压的文件拷贝到/usr/local/ZendFrameworkCli,可以在终端输入下面的命令来执行:sudocp-r~/Downloads/ZendFramework-1.9.0-minimal/usr/local/ZendFrameworkCli•编辑bashprofile以给Zend_Tool设置别名•在终端输入:open~/.bash_profile•在文件的末尾加入一行:aliaszf=/usr/local/ZendFrameworkCli/bin/zf.sh•保存退出•退出终端测试Zend_Tool你可以打开Linux终端或Windows的命令提示符来测试Zend_Tool命令行接口。提示符下输入:zfshowversion如果一切顺利,你会看到:ZendFrameworkVersion:1.9.0如果没有,请检查是否正确设置path、在ZendFrameworkCli文件夹下是否有bin文件夹开始编写我们的程序所有的工具都安装完毕,现在我们可以开始构建一个ZendFramework程序。我们将构建一个非常简单的库管系统,用来管理我们收藏的CD。主页上显示我们收藏的CD列表,并允许我们增加、修改、删除CD。CD信息以下面这种非常简单的表格形式保存在数据库中:字段名类型允许空?备注idintegerNoPrimarykey,autoincrementartistvarchar(100)Notitlevarchar(100)No需要下面的一些页面:主页显示所有唱片列表,提供修改、删除的链接。另外还提供一个新增唱片的链接。添加新唱片页面提供了一个表单,用于添加新唱片修改唱片页面提供了一个表单来修改唱片删除唱片页面提示是否删除的提示和删除功能创建项目打开终端或命令提示符,使用cd命令切换到WEB服务器的根目录下,确保你有权限在该目录下创建文件,并且WEB服务器有该目录的读取权限。然后输入:zfcreateprojectzf-tutorialZF将创建一个名为zf-tutorial的文件夹,文件夹中已经建立好推荐的目录结构。这种结构要求你能完全控制Apache的配置文件,以便可以将大多数的文件存放在web的根目录之外。(在public文件夹下还有个隐藏的.htaccess文件).application/目录是存放源代码的地方。正如上面看到的,我们使用单独的目录来保存应用程序的模型、视图和控制器文件。public目录是网站对外公开的根目录,这就表示我们可以通过URL来访问我们的程序。并且应用程序的绝大多数文件都不能直接通过Apache来访问,从而提高了系统的安全性。注释:在一个有多个网站的服务器上,你最好为你的网站创建一个虚拟主机,将其根目录直接指向public/目录。比如,你可以这样创建一个名为zf-tutorial.localhost的虚拟主机: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-1.9.0.zip中把library/Zend/目录拷贝到zf-tutorial/library/下,这样zf-tutorial/library/目录下就包含一个名为Zend的子目录。打开这个链接来测试是否所有的都配置好了:,应该能看到下面的页面:引导文件介绍ZendFramework的控制器使用前端控制器(FrontController)设计模式,所有的请求都通过index.php文件进入。这就是我们所说的引导文件,它能确保程序的运行环境都正确地配置。我们可以使用放在zf-tutorial/public文件夹下的.htaccess文件将所有的请求转向public/index.php文件,public/文件夹和.htaccess文件都已由Zend_Tool自动创建。index.php作为文件程序的入口,用来创建Zend_Application的实例,以初始化应用程序并运行程序。index.php同时声明两个常量:APPLICATION_PATH(application/文件夹的的路径)和APPLICATION_ENV(程序的运行环境)。Thegenerated.htaccessfilesetsittodevelopment。Zend_Application组件用来启动应用程序,它使用配置文件(application/configs/application.ini)中的指令进行配置。这个文件也已经自动生成。application/Boostrap.php中有一个扩展自Zend_Application_Bootstrap_Bootstrap的类:Bootstrap,它可以用来处理任何需要的引导代码。编辑application.ini文件虽然Zend_Tool已经提供了一个不错的默认配置文件,但仍然需要添加应用程序的特定配置。打开application/configs/application.ini,在[production]部分的最后添加下面的代码:phpSettings.date.timezone=UTC显然,你需要改成自己的时区。扩展自动加载类我们需要创建一个自动加载器来自动从程序目录下加载资源,比如从models目录和forms目录。Zend_Application_Module_Autoloader类用来做这些工作,我们可以在Bootstrap类中使用它。要添加的部分已经加粗:application/Bootstrap.php?phpclassBootstrapextendsZend_Application_Bootstrap_Bootstrap{protectedfunction_initAutoload(){$moduleLoader=newZend_Application_Module_Autoloader(array('namespace'='','basePath'=APPLICATION_PATH));return$moduleLoader;}}以_init开头的方法会被Zend_Application自动调用。方法名称的其余部分你可以自定义。组件自动加载器将按照下面表格中内容自动加载application/下特定文件夹中特定前缀名称的类,文件夹前缀举例apiApi_Api_RestformsForm_Form_LoginmodelsModel_Model_Newsmodels/DbTableModel_DbTable_Model_DbTable_NewspluginsPlugin_Plugin_现在开始我们就可以向应用程序中加入具体代码。程序具体代码在创建文件之前,先理解ZendFramework要求页面如何组织是非常重要的。程序的每个页面就是一个动作(Action),而动作又组合到控制器(controller)中。对于这种形式的URL,控制器是“news”,动作是“view”。这样可以将相关的动作组合到一起。例如,一个news控制器可以有list,archive和view动作。ZendFramework的MVC系统还支持将不同的控制器组合在一起,但我们要做的这个程序没有那么复杂,所以我们不用考虑这些。默认

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功