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等等.它们可以帮助您分离这些部件 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |