2015-05-29 57 views
0

我目前正在从事个人项目。整个网站是动态的,所以我正在从所有页面上的数据库请求各种信息。我注意到我正在复制特定的代码以将数据显示到页面。一些例子是将htmlspecialchars应用于数据或迭代设置图像路径等。PHP模型(MVC)是专门为数据库交互指定的吗?

我想知道的是,如果这是一个糟糕的决定,所以我可以早日纠正。大多数互联网资源都表示,控制器会在模型提取,更新,插入数据到db等时进行操作。但至少对我来说,通过模型操纵输出数据是有道理的,因为所有页面都会以相同的方式使用它。

+0

您还可以让帮手提供一些“帮手”功能,如清理输入,管理重定向或网址编排。 – Justinas

+0

目前我有一个数组助手可以设置或清理请求的数据。 – ICJ

+0

如果所有页面都以相同的方式使用您的数据,那么您将拥有一个非常轻的控制器,但由于许多原因,必须保留此应用程序层。例如,您决定以不同的方式使用数据的那一天,您将很高兴能够这样做。而且,在大型应用中,制作前端的人可能不是在后端制作模型的人,保持两者分离是最好的做法。 –

回答

1

否。模型仅表示数据,不管它来自数据库,XML文件,Web服务/ API还是数据。

如果您发现自己在做同样的事情,那么现在是时候对您的代码进行重新分类和干预了。对于诸如清理数据之类的事情,您通常会有一位演示者使用您的模型,然后根据需要将其数据进行清理。这种模式有其单一的责任(代表数据),而你现在有单一的数据转换责任。

+0

这一切只适用于为幻灯片等设置数据或图像路径。因此,例如,我将获取每个页面(不同的幻灯片)上的幻灯片数据,我将不得不遍历设置图像路径+消毒输出。因此,我切换到模型中的消毒和设置图像路径,现在我只是通过控制器将数据从模型传递到视图,而无需使用幻灯片显示清除每个页面上的输出。我只是不知道这是否是“不好的做法” – ICJ