加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 我觉得我将我的表现逻辑与我的模型逻辑混合得太多了.一些

发布时间:2020-12-13 17:06:29 所属栏目:PHP教程 来源:网络整理
导读:所以我对 PHP,MySQL和 Javascript仍然有点新,但我一直在研究一个项目,所以我一直在快速学习.但是,我觉得在我的php页面中我混合了太多的HTML和PHP.起初我认为这是标准做法,但有人告诉我你应该如何混合两者,我开始查看我的代码. 例如,当加载一个提交页面时,我
所以我对 PHP,MySQL和 Javascript仍然有点新,但我一直在研究一个项目,所以我一直在快速学习.但是,我觉得在我的php页面中我混合了太多的HTML和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(仅在较小程度上)

我不知道.我只是需要一些建议,以便最好地处理这个问题,因为我不想以错误的方式做事情,然后在事情破裂或变得过于复杂时必须重构一切.

解决方法

使用PHP时,几乎不可能不混用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只会增加另一个不必要的层,但是当你不想要一个完整的框架堆栈时它会非常有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读