MVC模式&文件夹结构的最佳实践

时间:2011-06-07 03:34:49

标签: php model-view-controller

在我在不同页面中有2个相似表单的站点中,由于某些字段是相同的,因此我认为应该有一个类来验证两个表单中的字段。

我的问题是,这样一个班级应该在哪里居住?在/assets?在/includes

此问题也适用于任何其他文件(例如第三方脚本)。

不属于/controller/model目录的文件的最佳组织做法是什么?

3 个答案:

答案 0 :(得分:1)

“资产”通常是指静态资产,如图像和CSS文件,因此就是这样。如果您没有使用MVC框架,或者您正在使用的框架没有此约定(请尝试使用Google搜索),我建议您创建一个类似/lib/lib/validators的目录或者/common。最后,最重要的是选择对您有意义的东西(以及可能正在从事该项目的其他开发人员)。如果您意识到不同的结构可能会更好,您可以随时移动文件。

答案 1 :(得分:1)

这是一个非常复杂的话题,所以看看symfony框架目录结构:

http://andreiabohner.files.wordpress.com/2007/03/cheatsheetsymfony001_enus.pdf

并尝试以某种方式模仿它。它将表单存储在/ lib / form /中 - 如果你的目录结构不那么复杂,你可以使用例如/ form。正如约旦所说,资产是静态元素,如图像或CSS文件。包含通常用于存储配置等,它根本不用于现代开发。

答案 2 :(得分:1)

我有一个本土的MVC,其中很多页面共享共同的任务和库,所以99%的模型工作是调用Form :: validateForm()之类的东西并将结果返回给Controller而不是模型完成所有工作。

这意味着/ foo / form可以使用与/ bar / form相同的Form类,而无需复制任何行为。

让Classes处理繁重而不是模型可能不是“最佳实践”,但我发现它允许从目录结构中抽象出所有这些常见任务。