gpt4 book ai didi

php - 使用 PHP 创建 html 模板

转载 作者:太空狗 更新时间:2023-10-29 14:17:02 25 4
gpt4 key购买 nike

我通过环顾四周和研究现有的框架,学到了很多关于 MVC 框架如何工作的知识。似乎我看到的每个框架都有一个布局,其中每个 Controller 中的每个方法都有自己的模板文件。所以会有登录模板,注销模板,注册等等。

我的问题是,如何以及为什么要在一个文件中为整个页面创建一个模板。假设您想在多个页面上显示登录表单,难道您不必为每个要显示的模板创建登录表单吗?这不是违反了不要重复自己的规则 (DRY) 吗?

到目前为止,我做事的方式是创建少量模板 block ,然后将它们组合起来创建每个页面。所以不要做这样的事情,

$title = 'Blah Blah Blah';
$user = 'Jon Miller';

include 'index.phtml';

<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>
<h3><?php echo $user; ?></h3>
<form>login form</form>
</body>
</html>

我一直在做这个

$title = 'Blah Blah Blah';

include 'header.phtml';

$user = 'Jon Miller';

include 'user.phtml';
include 'login_form.phtml';
include 'footer.phtml';

header.phtml
<html>
<head>
<title><?php echo $title; ?></title>
</head>
<body>

user.phtml
<h3><?php echo $user; ?></h3>

login_form.phtml
<form>login form</form>

footer.phtml
</body>
</html>

一如既往,我只想知道正确的方法,以及如何以及为什么......它似乎违反了 DRY 规则。

谢谢

最佳答案

您应该查看“layouts”的概念' 和 ' view helpers '.虽然我已经链接到这些概念的 Zend Framework 版本,但其他 MVC 框架(和 MVC 概念)也应该有它们。

基本思想是您的页面“ View ”(例如登录表单)包含在您的网站“布局”中,即整个网站使用的通用模板。当您请求具有不同 View (例如用户配置文件)的不同 Controller 时,该 View 也包含在同一布局中。

要在所有页面上包含诸如登录表单之类的内容,可以使用 View 助手。该 View 助手可以显示当前用户,或显示登录表单,具体取决于登录状态。 View 助手可能包含在布局中,或包含在特定 Controller 中(只要 MVC 框架允许某种命名的渲染段)。

两步“包含”方法比线性包含部分(包括页眉,然后是内容,然后是页脚 - 您现在正在做的)效果更好,因为您的模板不必拆分 HTML 标记。 Zend 指南有一个 good visual example布局中的 View 模板。

关于php - 使用 PHP 创建 html 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com