我已经构建了一个MVC php应用程序并且想知道,如果不是必须写出大量的html并设置数据,我是否可以将所有这些html(带有一些php)放在一个单独的文件中需要吗?
例如:
$test = '<div>
Test content
<div>More content</div>
</div>';
$APP->Template->setData('test', $test, FALSE);
相反,我不能只使用:
$test = require("includes/content.php");
$APP->Template->setData('test', $test, FALSE);
这会被视为不良做法吗?似乎通过要求文件,它可以缩短控制器的长度。
在此问题上获得任何人的建议会很好。
答案 0 :(得分:1)
这取决于你在哪里做的包括:如果你在你的模型中执行它们,那就错了。但是,在视图中它会没问题。
这是一个关注点分离的问题:模型是应用程序的主干,而视图负责显示模型的结果。
我没有看到,怎么包含会缩短控制器的长度。
答案 1 :(得分:1)
您打算包含的文件看起来像模板。当它开始将HTML文档拼凑在一起作为响应时,它们应该是视图实例的句柄。视图应该从模型层(这是一个层,而不是单个对象类)请求信息,并根据接收到的数据,决定什么是适当的响应形式。
此类代码在控制器中没有位置。在模型层中甚至更少。模型应该只包含域业务逻辑,并且完全无视表示层。