将 PHP 与 HTML 一起编码时,看起来总是令人困惑和痛苦。结构不容易理解。
谁能告诉我如何用结构良好的 HTML 编写 PHP 代码?
有一些方法可以帮助解决这个问题,例如模型-视图-控制器 (MVC)。MVC 将数据层、逻辑层和表示 (UI) 层分开。在这种情况下,诸如 CodeIgniter 之类的框架会为您提供帮助。即使您不打算使用现有框架,将数据模型从业务逻辑中分离出来,然后从 UI 对象中分离出来也相对容易。
编辑:假设您有一个购物车页面。您可以有一个名为 cart.php 的“视图”文件,然后您可以从其他 PHP 文件(“控制器”)向其发送信息,这样就可以代替:
<div id = 'special_price'>
<?php $result = mysql_query("SELECT price FROM pricelists");
$row = mysql_fetch_assoc($result);
echo $row["price"];
?>
</div>
你可以这样做:
<div id = 'special_price'><?= $price ?></div>
在这种情况下,所有逻辑和数据访问都会在您尝试显示页面之前进行处理。
@ajacian81 是对的,但还有其他选择。他提到的方式是根据 MVC 框架编写所有代码。MVC 架构是分离复杂 Web 应用程序关注点的绝佳方式。MVC 将应用程序逻辑、数据库逻辑和视图分成 3 个不同的地方。但是,将混合的 php+html 代码库重构为 MVC 框架可能非常耗时。如果您有兴趣在不完全重构代码库的情况下从 html 中删除 php,请考虑使用Twig或Smarty 之类的模板引擎。
如果您使用模板引擎,您可以将 php 和 sql 分离到一个位置,将 html 模板分离到另一个位置。如果您使用 MVC 框架,您必须将 php、sql 和 html 分成 3 个不同的位置。如果您的优先事项本质上是短期的,只需使用模板引擎。如果您的优先级本质上是长期的,请考虑将您的代码重构为 MVC 框架。
PHP 已经变得如此先进,你真的不会使用自定义构建的框架信念获得任何东西。如果您注释掉您的脚本以及 html 和 php 的每个部分的每个开头和结尾,您会惊讶于运行一个完整的社交网站或社交业务门户所需的速度和文件数量的减少。我只使用三个主要文件——config.php、ini.php 存储我所有的会话和cookie,以及db_connect.php。我的所有页面视图都由 Ajax 处理而无需刷新页面,并且我的所有表单都被带入其中一些视图以使用 Ajax 而无需刷新页面。我的所有 URL 请求几乎都使用了 Ajax,这消除了对笨重框架的需求。