使用Agavi进行MVC编程简介,第1部分:使用Agavi开辟一个新世界
置除外:
这个项目向导将自动创建一个空的应用程序容器,并使用默认设置填充它。图2 是一个实际操作屏幕截图。 图2. 实际操作中的Agavi 项目向导 作为整个过程的一部分,该项目向导将向应用程序目录结构添加一些新的目录:$WASP_ROOT/app/ 用于存储应用程序代码;$WASP_ROOT/pub/ 用于存储图像、样式表和静态 HTML 页面等 Web 访问内容;$WASP_ROOT/dev/ 用于存储开发文件。 图3显示了最后的布局: 图3. Agavi应用程序的文件布局 注意,$WASP_ROOT/dev/包含Apache .htaccess文件的一个副本。它专门用于使用分布式版本控制系统(比如SVN或CVS)的项目,因为它允许您维护工作副本,同时不干扰共享工作空间。如果仅考虑当前的目标,完全可以安全删除该目录;查看 参考资料获得关于Agavi 手册页面的链接,它详细解释了该目录的使用。 项目创建过程完成之后,您可以打开 Web 浏览器并访问先前设置的虚拟主机。输入 URL http://wasp.localhost/。您应该会看到Agavi 欢迎页面,如Figure 4 所示。 图4. 新的Agavi应用程序的欢迎页面 恭喜您!您现在拥有一个正常运行的Agavi应用程序(虽然很简单)。接下来,仔细查看它的内部结构,并修改它们以支持前面描述的功能。 理解基础概念 用Agavi框架开发应用程序遵循传统的模型-视图-控制器模式:数据模型与处理逻辑分离,处理逻辑与表示分离。Agavi使用模型(Models)、操作(Actions)、视图(Views)和路由(Routes)实现这个模式。 模型表示数据,并提供管理、操作、计算数据所需的函数,它们通常存储(虽然不是总是)在数据库中。Agavi包含常见数据库的适配器,以及针对Propel和Doctrine ORM的驱动器。 视图表示用户可以看到的输出。视图与页面模板紧密结合,页面模板包含必要的布局代码和标记,以将视图正确地呈现给用户。视图还可以给模板变量赋值;这些值会在运行时自动地填充到页面模板中。 操作提供模型和视图之间的链接。它们使用模型更改应用程序的数据,然后调用视图向用户显示最终结果。一个操作可以有多个视图,并且可以根据需要显示的结果调用不同的视图。 路由提供用户请求和操作之间的链接。当用户发出获取应用程序 URL的请求时,路由系统将拦截该请求,并根据 URL模式决定应该调用哪个操作来响应请求。路由在模式匹配时使用正则表达式,并且使用XML 表示。 您是否对这 4个组件是如何协调工作的感到困惑?要了解通过Agavi应用程序发出的Web请求的典型流程,Agavi 手册提供了最好的解释(见 参考资料获得链接),手册中写道:“当Web请求到达时,路由机制将选择需要执行的初始操作;操作通过调用模型执行必要的应用程序状态更改;它还在完成之后选择将要执行的一个视图。此后,指定的视图显示应用程序的输出。 默认情况下,所有操作位于默认的模块中。不过,您通常希望根据 Web应用程序的不同功能领域对操作(及其相关的模型和视图)进行分组。模块提供一种实现方式。例如,如果您的应用程序包含搜索子系统、用户配置文件管理和新闻,您可以分别创建名为Search、Profiles和News的模块,并将相应的操作放到这些模块中。 了解所有这些背景信息之后,现在回到项目向导生成的代码,并仔细查看如何生成默认的Agavi 欢迎页面。首先,查看存储在$WASP_ROOT/app/config/routing.xml 中的应用程序路由表。在清单1 中,您可以找到应用程序索引页面的路由: 清单1.应用程序索引页面的路由
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |