首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉拉维尔叶片{.} vs <?= ?>

拉拉维尔叶片{.} vs <?= ?>
EN

Stack Overflow用户
提问于 2018-10-29 12:05:58
回答 4查看 1.8K关注 0票数 1

我正在从cakephp转到laravel,我想了解{{ }}相对于短php标记<?= ?>的优势是什么。我认为php标记更快,不需要模板框架进行任何处理。我知道{{ }}会进行一些转义,但在没有必要时,为什么要使用{{ }}而不是<?= ?>。另外,@foreach@if的优势是什么?对<?php foreach():?> . <?php endforeach ?><php if():?> <?php endif;?>

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-10-29 12:18:20

来自Laravel的医生:

刀片{{ }}语句通过PHP的htmlspecialchars函数自动发送,以防止XSS攻击。如果不希望转义数据,可以使用以下语法:

Hello, {!! $name !!}.

当回显由应用程序的用户提供的内容时,要非常小心。始终使用转义的双大括号语法,以防止XSS攻击时显示用户提供的数据。

另外,如果您使用的是刀片模板引擎,那么使用{{ }}就像惯例一样

https://laravel.com/docs/5.7/blade#displaying-data

票数 5
EN

Stack Overflow用户

发布于 2018-10-29 14:31:52

谢谢你们的回答,但我还是没有得到我想要的答案.这意味着澄清了我应该使用Laravel的路径(因为我来自多年的cakephp,在模板方面更简单)。我理解并提到{{}}正在为XSS转义字符串,直到现在.但我的问题如下:

  1. 我正在从cakephp迁移一些模板,并且已经在那里.不,我必须把每件事都移到{}和@foreach和@if。
  2. 这不是{{} @foreach标记增加了开销并延长了执行时间吗?我的意思是,模板最终必须将所有这些标记转换为php标记,对吗?
  3. 我没有找到一个好的编辑器(或IDE)来很好地显示这些标记,向我展示重复或决策结构的开始和结束,给标记中的语法着色和突出显示。所以有点烦人..。至少在所有编辑器中,如果我关闭括号,数组(如果我缺少a‘或“.等等),我在所有编辑器中都看到了非常清楚的含义。有什么好的编辑器可以识别刀片语法吗?
  4. 正如我所理解的{{}(逃避xss)的好处,但是“foreach vs”或“if vs?”的好处是什么?
  5. 因为我还不知道laravel (和它所有的力量)有一个隐藏的特点,我不知道,这会使它很难工作(迁移,外推,颜色,添加气味:)。将来,如果我在我的文件中使用php标签而不是刀片标签的话?例如,如果o使用刀片标记,那么将来将所有文件迁移到不同的模板引擎会更容易吗?如果我使用php标记,它就不会工作了吗?

再次感谢你分享你的想法

票数 1
EN

Stack Overflow用户

发布于 2018-10-29 12:08:56

{{ ... }}只适用于刀片文件,而<?= ... ?>只适用于每个php文件。这是我唯一知道的区别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53045152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档