使用Agavi进行MVC编程简介,第1部分:使用Agavi开辟一个新世界
http://agavi.org/agavi/config/parts/routing/1.0"> <ae:configuration> <routes> <route pattern="" module="Welcome" action="Index" /> ... </routes> </ae:configuration> </ae:configurations> 一个路由项通常包含pattern、module和action属性。pattern属性指定路由匹配的URL模式,而module和action属性指出应该调用哪个模块和操作来响应请求。默认情况下,Agavi将使用它查找到的第一个匹配项;因此,作为一般规则,应该将最特别的路由安排在前面,越普通的路由位置越靠后。要更改这一行为,需要向路由添加一个 stop=false属性;这告诉 Agavi 在查找到匹配项之后仍然继续处理。 清单1 中的路由是一个非常普通的路由。它确保对于任何 URL请求,Agavi 都将调用Welcome模块的Index Action。这个操作由 Agavi 项目向导自动创建(作为一个 PHP 类),您可以在$WASP_ROOT/app/modules/Welcome/actions/IndexAction.class.php 上找到它。 清单2. Index Action
每个 Action 类都有一些标准方法,Agavi将使用这些方法决定如何处理不同类型的请求。例如,executeRead()方法指定如何处理 GET请求,而executeWrite()方法指定如何处理 POST请求。如果这两个方法都没有定义,那么每个 Action 至少必须有一个 getDefaultViewName()方法,它为操作指定默认的视图。从 清单2的代码中,可以看到IndexAction的默认视图被命名为Success。 根据 Agavi的文件命名约定,Welcome模块中的Index Action的Success 视图应该存储在$WASP_ROOT/app/modules/Welcome/views/IndexSuccessView.class.php 中。导航到该文件,您将看到类似于清单3的内容: 清单3. Success 视图
在显示一个视图时,Agavi 自动地调用一个名为executeXXX()的方法,其中 XXX 对应于所需的输出类型。要生成 HTML 输出,视图必须包含一个 executeHtml()方法,它设置必要的模板变量,并且为显示准备模板。在本文的后面部分您将看到,还可以生成其他格式的视图。例如,要生成 XML 输出,需要定义一个 executeXml()方法,要生成 YAML 输出,需要定义一个 executeYaml()方法,等等。您可以通过setAttribute()方法在视图内部定义模板变量,然后在模板内部以 $t 数组的键的形式访问这些变量。 需要注意的是,由视图生成的HTML 标记不是存储在View 类文件本身,而是存储在另一个模板文件中。根据 Agavi 约定,这个模板文件必须以视图的名称命名;因此,IndexSuccessView的模板位于$WASP_ROOT/app/modules/Welcome/templates/IndexSuccess.class.php。打开这个文件,您看到的HTML 标记将生成如清单4 所示的输出。 清单4. HTML 标记
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |