模型视图演示者/控制器文件结构

时间:2011-03-18 06:41:56

标签: php web-applications mvp

我想知道大多数开发人员如何将MVC分成不同的文件。 我正在处理的软件是专门针对AJAX的,视图没有逻辑,如何处理输入数据,它只有UI逻辑和所有动作,通过命令+发送到控制器以通过巨型开关盒进行处理参数(作为POST)请求。

例如。 3个文件

  • list_inventory.php(查看)
  • ajax_inventory.php(controller)
  • class_inventory.php(model)

理论上,这种结构看起来绝对完美,但在大多数情况下,随着开发的进展,重复的控制器代码,因为每个视图都有自己的控制器。共享同一个控制器是CRUD应用程序的常见做法吗?有时控制器也有最少的代码,例如。 1组命令+参数 - 一个案例开关。

SEO和东西也不是问题因为它是一个内部网络应用程序。

1 个答案:

答案 0 :(得分:0)

我通常使用一个公共控制器类或多个基本控制器类,具体取决于它们的用途。因此所有重复代码都在一个地方,只需要不同的控制器来设置适当的参数以使基类代码工作。

例如,有新闻和页面编辑部分的网站(都有标题和内容......)然后你创建一个基本控制器类来处理常见的CRUD任务,只在你的子类中为你服务设置POST参数名称并将它们与实际数据变量等相关联。

如果我理解你的话,你可以在PHP中的一个大胖子开关中解析服务器端的操作,对吗?将每个操作拆分为控件中的单独方法并且使用反射类来检查有效性是不是更好的解决方案?这样,调度到正确的操作就是在一个单独的地方(在某个地方上升)并且你只定义了单独的动作处理程序(同样,处理所有控制器中的常见动作应该在父类的某个地方定义)。

问候。