在我在不同页面中有2个相似表单的站点中,由于某些字段是相同的,因此我认为应该有一个类来验证两个表单中的字段。
我的问题是,这样一个班级应该在哪里居住?在/assets
?在/includes
?
此问题也适用于任何其他文件(例如第三方脚本)。
不属于/controller
和/model
目录的文件的最佳组织做法是什么?
答案 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处理繁重而不是模型可能不是“最佳实践”,但我发现它允许从目录结构中抽象出所有这些常见任务。