Zend Framework:如何在我们的移动网站上使用MVC

时间:2011-05-04 14:33:32

标签: model-view-controller zend-framework design-patterns

好的,所以我的在线订购,它是一个我称之为'olo'的模块。我现在需要的是建立一个我们网站的移动版本,完全不同的布局和设计。

现在,我如何利用MVC的力量,这是我开始时卖掉的?

我想使用我已经在OLO模块中创建的所有不同的控制器类。

现在我已经开始开发我们的移动网站,它被放置为另一个名为“移动”的模块。它是用jQuery Mobile构建的,我已经完成了很多工作;信息页面,联系表格等。

所有移动设备目前都已domain.tld/m重定向至{{1}}。如果链接到移动版本,则可以支持完整网站视图。

3 个答案:

答案 0 :(得分:4)

使用 Zend Framework 1.11 ,zend引入了基于wurfl adapterZend_Http_UserAgent

它允许您检测移动设备并引导不同的布局。 2010年12月的zend时事通讯附带的YouTube上有一个怎么样:http://www.youtube.com/watch?v=_A8yg73tqOY

您不必使用不同的模块!只是不同的布局文件!

答案 1 :(得分:3)

就个人而言,我会使用前端控制器插件。在我关注的过程中,在引导程序中执行此操作是一个过早的步骤。

编写一个挂接preDispatch()的插件,并使用Zend_Http_UserAgent查找是否通过移动设备访问应用程序。然后你可以set view script path到另一个目录。例如,假设默认是您当前的视图目录,移动是您的新视图目录。你只是克隆结构并修改文件,它应该做的诀窍:)

application/
  modules/
    olo/
      controllers/
      modules/
      views/
         scripts/
           default/
           mobile/

答案 2 :(得分:3)

与ArtWorkAD一样,您可以在Zend Framework 1.11中使用wurfl适配器,它允许您检测用户代理并切换布局,但这意味着每个人都需要“通用”。到目前为止,我从未如此“普遍”地看待。

您可以使用的是View的ContextSwitch http://framework.zend.com/manual/en/zend.controller.actionhelpers.html#zend.controller.actionhelpers.contextswitch

它允许您创建不同的上下文,通常用于创建csv / xml文件。 假设你有一个名为Index的控制器,其中有一个名为FooAction()的动作,我假设你已经有了一个视图脚本/ index / foo.phtml

您可以创建一个名为“mobile”的上下文,它允许您为该上下文创建一个视图,如scripts / index / foo.mobile.phtml。 这就像更改布局,但对于视图和前一个wurfl适配器,您可以更改布局,自动切换上下文。