脚本宝典收集整理的这篇文章主要介绍了php – 我觉得我将我的表现逻辑与我的模型逻辑混合得太多了.一些帮助?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
例如,当加载一个提交页面时,我有一个看起来像这样的循环(浓缩版本):
<?PHP while ($row = MysqL_fetch_assoc($submissionQuery)) { $submissionID = $row['id']; ?> <div class="submission" id="submission<?PHP echo $submissionID; ?>"> <h3><?PHP echo $row['tITle']; ?></h3> </div> <?PHP } ?>
我之所以不在PHP中包含整个块,是因为那里不仅有h3而且我不想使用Mass-echo语句.
在我看来,这看起来很可怕,我想知道更好的方法.我想我可以将所有提交内容存储到一个数组中,然后稍后循环遍历它们,但我看到了几个缺点:
1)不必要地将值存储到数组中.之后才会立即召回.
2)如果提交的内容很多,则可能没有足够的内存来存储它们.
3)需要更多代码.
4)以后仍然需要循环遍历数组,在这种情况下我仍在混合使用PHP和HTML(仅在较小程度上)
我不知道.我只是需要一些建议,以便最好地处理这个问题,因为我不想以错误的方式做事情,然后在事情破裂或变得过于复杂时必须重构一切.
你有一个文件,称之为submission_PRoccess.PHP,在那个文件中你有这个代码.
$submission = array(); while ($row = MysqL_fetch_assoc($submissionQuery)) { $submission[] = $row; } //more LOGic //include your view submission_view.PHP
现在submission_view.PHP是您的观点,可以这么说.你会有这样的东西
<?PHP foreach ($submissions as $submission) : ?> <div class="submission" id="submission<?PHP echo $submission['id']; ?>"> <h3><?PHP echo $submission['title']; ?></h3> </div> <?PHP enDForeach; ?>
这里重要的是要看到您不必触摸视图文件,如果您要修改查询或过滤它.您的业务逻辑与您展示它的方式是分开的.您甚至可以删除HTML include,只需要一个带有$submission变量的文件并将其输出为JSON.
你应该关注的一些事情是
> PHP框架 – Zend,CakePHP,Codeignitor,Symphony,Kohona等等.它们可以帮助您分离这些部件
>另一件事是PHP alternate syntax for control structures>此外,像Smarty这样的PHP模板系统.有些人可能会争辩说使用Smarty只会增加另一个不必要的层,但是当你不想要一个完整的框架堆栈时它会非常有用.
以上是脚本宝典为你收集整理的php – 我觉得我将我的表现逻辑与我的模型逻辑混合得太多了.一些帮助?全部内容,希望文章能够帮你解决php – 我觉得我将我的表现逻辑与我的模型逻辑混合得太多了.一些帮助?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。