2010-09-06 39 views
2

我使用php,并且通常将我的应用程序构造到模型视图控制器中,因此它总是通过带有类和方法属性的index.php进行访问。作为URL的一部分传递的Class属性指定控制器类和方法调用的简单方法。这似乎很常见,但是我在确定我要创建哪些控制器时总是遇到麻烦。什么是决定应该创建什么控制器的最好,最简单和最适用的方法?我知道它取决于Web应用程序本身,但必须通过一些通用的思维方式来启动此过程。如何决定Web应用程序的控制器?

回答

2

我发现基于您的应用程序对象的楼宇控制器效果很好,并且可以处理您希望为您的应用程序执行的大多数操作。

看看SO--有以/ questions,/ tags,/ users等开头的URL。我建议通过为每个对象创建一个不同的控制器来开始设计。 /问题(或/问题/列表)返回所有问题的列表。/questions/[0-9] +使用该ID号返回特定问题的详细信息。/questions/ask返回Ask Question界面。

随着您继续构建应用程序,您可能会发现基于控制器的对象方法并不能满足您的所有需求。例如,在我的网站(http://www.wysiap.com)上,我最终创建了一个/ list控制器来简化我的Grails URL映射。但在大多数情况下,我确实使用了这种方法,很容易找出哪个控制器应该做不同的动作。

0

我建议您考虑一下您的应用程序需要的页面以完成所有请求的任务。您将在同一页面上分组类似的任务,并根据需要创建多个页面。一个页面可以在不同的视图中切片,以便进行特定的操作。

考虑到这一点,你可以有一个控制器每页。页面的每个视图都可以在控制器中拥有自己的方法(操作)。并且在每个视图的方法中,您可以有一个switch(),这将使您可以有多个视图任务。例如:

  • 的index.php(控制板控制器)
  • /问题列表(QuestionList控制器,动作指数,显示整个页面)
  • /问题列表/添加(QuestionList控制器,动作添加, (profile控制器,动作索引)
  • /profile/edit(Profile控制器,动作编辑,管理所有的为您的个人资料要求的任务)
  • ...

我这样设计我的大多数Web应用程序和使用Zend-Framework

相关问题