【发布时间】:2010-10-07 18:55:47
【问题描述】:
我正在尝试掌握 MVC 结构并尝试决定我的文件应该放在哪里。
我有一个 php 脚本,它从一个不可通过网络访问的位置读取图像并将其输出。
它属于Controller还是View?
同样,加载 smarty 模板(从视图)并设置值并将其输出的脚本应该在 Controller 或 View 中吗?
感谢您的帮助!
【问题讨论】:
标签: php model-view-controller architecture
我正在尝试掌握 MVC 结构并尝试决定我的文件应该放在哪里。
我有一个 php 脚本,它从一个不可通过网络访问的位置读取图像并将其输出。
它属于Controller还是View?
同样,加载 smarty 模板(从视图)并设置值并将其输出的脚本应该在 Controller 或 View 中吗?
感谢您的帮助!
【问题讨论】:
标签: php model-view-controller architecture
我第二。建模,因为控制器变得如此之快。
它应该是一个模型,因为只有模型应该被允许知道在哪里可以找到数据以及如何访问它们(在你的情况下是文件系统)。此外,数据转换最好在模型中完成。
敢于即时输出压缩的 JPG 文件而不是 10MB+ BMP 文件吗?如果您的服务器可以管理它,您的 $ImageModel->outputAsJPEG() 可以在控制器中调用,一起跳过 viewscripts 或委托给 viewscripts/smarty 函数。
【讨论】:
对我来说,你的两个例子听起来都像是模型逻辑,但第二个例子有点模糊。模板是一个视图,但设置值可能是模型逻辑,如果它不重要的话。
你的视图应该调用一个模型来获取它需要的东西,控制器应该决定显示哪个视图并实例化正确的模型来传递给视图。
如果您可以将代理图像脚本视为模型,则只需在视图中调用它。
【讨论】:
这种情况下只有模型。
【讨论】: