代码之家  ›  专栏  ›  技术社区  ›  stunti

具有不同表示的MVC

  •  0
  • stunti  · 技术社区  · 17 年前

    但是现在我需要创建这个应用程序的iphone(移动电话)版本。

    基本上,这是一个带有注释的博客应用程序。 但在移动应用程序上,我希望根据请求加载评论。 你是如何做到这一点的。

    • 操作(每个视图一个)。但我可以 有大量的肌动蛋白,这将是 相似但不完全相同。和路由
    • 2个控制器每个控制器1个视图: 其他人管理移动版本。

    我对其他想法持开放态度。

    3 回复  |  直到 17 年前
        1
  •  0
  •   Paul Stovell    17 年前

    我认为“RESTful”的方法是使用相同的URI(如此相同的控制器/操作),并检测(从会话中,或通过查看用户代理头)是否要呈现完整版本或移动版本。

    因此,您只有一个控制器/操作,如下所示:

    class BlogController {
        function ShowPost() {
            if (IsMobile) { 
                View("PostWithComments_Mobile");
            } else {
                View("PostWithComments");
            }
        }
    }
    

    根据您对框架的控制程度(我不知道PHP或Zend),您可能能够根据移动版本是否存在以及用户代理自动将其切换到不同的视图。

    一个快速的谷歌搜索结果在许多样本检测移动浏览器。

        2
  •  0
  •   Michał Niedźwiedzki    17 年前

    我建议以XML输出视图,然后根据目标屏幕大小使用相应的XSL文件将其转换为完整或精简的HTML。我相信您可以在ZF中发布从控制器返回的流程视图。刚刚在我朋友的iPhone上检查了XML+XSL转换,它工作得非常好。

        3
  •  0
  •   Ionuț G. Stan    17 年前

    你应该定义一个 ContextSwitch action helper . 您还需要一种方法来识别来自iPhone平台的请求。

    推荐文章