gpt4 book ai didi

php - CakePHP 推荐的模板语法( View )

转载 作者:可可西里 更新时间:2023-10-31 23:45:28 27 4
gpt4 key购买 nike

自从我使用 CakePHP 以来,我问自己关于 CTP 文件推荐语法的更深层意义,它基本上是一个 HTML 文件,所有 PHP 代码都用标记括起来。我发现这很难阅读,我认为 HTML 和 PHP 之间的上下文切换会增加一些性能损失。将所有输出收集在一个字符串中并在最后回显它不是更快更清晰吗?但肯定有一些更深层次的意义,只是我没有看到它..为了让自己更清楚,这里有一个例子:

CakePHP:

<?php if (!empty($file['User']['email'])): ?>
<div class="mailto"><?php echo $this->Html->link($file['User']); ?></div>
<?php endif; ?>
<?php if (!empty($file['Document']['comments'])): ?>
<div class="file-comment file-extra column grid_6">
<div class="content"><?php echo $file['Document']['comments']?></div>
</div>
<?php endif; ?>

我的方法:

<?php
$out = '';
if (!empty($file['User']['email'])) {
$out .= '<div class="mailto">'.$this->Html->link($file['User']).'</div>';
}
if (!empty($file['Document']['comments'])) {
$out .= '<div class="file-comment file-extra column grid_6">'
.'<div class="content">'.$file['Document']['comments'].'</div>'
.'</div>';
}
echo $out;
?>

所以我的问题是:与 CakePHP 相比,我的方法有哪些缺点?

最佳答案

首先要做的事情是:将整个模板编写为 PHP,然后回显它并不是一个好主意。作为一般经验法则,我会尽可能避免从 PHP 回显 HTML。原因有很多,但主要原因是您的 IDE 中缺少语法高亮显示。

无论如何,代码格式完全取决于个人喜好,但是如果您像这样编写模板:

<?php if (!empty($file['User']['email'])): ?>
<div class="mailto"><?php echo $this->Html->link($file['User']); ?></div>
<?php endif; ?>
<?php if (!empty($file['Document']['comments'])): ?>
<div class="file-comment file-extra column grid_6">
<div class="content"><?php echo $file['Document']['comments']?></div>
</div>
<?php endif; ?>

...难怪你看不懂它们。


您可以尝试一些方法,使您的代码更清晰易读。同样,这些取决于您自己的个人喜好,您可能会养成使用其中部分或全部的习惯。

  • 正确格式化您的 HTML,并为子元素缩进。

  • 在太忙的代码行之间添加空格,尤其是在 PHP 行和 HTML 行之间。

  • 使用简短的回显标记语法(<?= 而不是 <?php echo)。

  • 将更复杂的 PHP 值分配给变量,以便您的 HTML 更易于阅读。

  • 请记住对您的代码(HTML 或 PHP)进行注释,特别是添加 HTML 注释,以便您可以轻松地一目了然地查看模板的各个组件。

示例

<?php
$user = $file['User'];
$comments = $file['Document']['comments'];
?>

<!-- User -->

<?php if (!empty($user['email'])) : ?>

<div class="mailto"><?= $this->Html->link($user); ?></div>

<?php endif; ?>

<!-- File Comments -->

<?php if (!empty($comments)) : ?>

<div class="file-comment file-extra column grid_6">
<div class="content"><?= $comments; ?></div>
</div>

<?php endif; ?>

关于php - CakePHP 推荐的模板语法( View ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41105834/

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