使用Magento设计文件,似乎非常倾向于使用替代的php语法(下面的示例)。有哪些技术优势?或者,如果它只是一种风格偏好,那么技术吸引力是什么?
<div class="page-title title-buttons">
<h1><?php echo $this->__('Shopping Cart') ?></h1>
<?php if(!$this->hasError()): ?>
<ul class="checkout-types">
<?php foreach ($this->getMethods('top_methods') as $method): ?>
<?php if ($methodHtml = $this->getMethodHtml($method)): ?>
<li><?php echo $methodHtml; ?></li>
<?php endif; ?>
<?php endforeach; ?>
</ul>
<?php endif; ?>
</div>
答案 0 :(得分:2)
没有&#34;优势&#34;或者&#34;劣势&#34;。它归结为偏好和可维护性。
记住=&gt;你应该真正分离PHP和HTML语法。将PHP和HTML保存在单独的文件中 - 这是出于可维护性和许多其他原因(如果您搜索,那么有很多信息)。你无法将这两件事完全分开......你总是需要将PHP变量插入到HTML和东西中,但这应该保持在最低限度。
因此,我更喜欢在Wordpress,Codeigniter和其他东西的模板文件中使用替代语法,因为我认为你在模板文件中将PHP 插入 HTML,所以让我们保持那些PHP块是孤立的。
即。对我来说:
<?php
if(something){
// this is a block of PHP
// if you want to output html in here
// it seems right to do
echo "<div>Here is some HTML</div>";
}
?>
反之亦然:
<div>
<!-- this is a template file and is written in html -->
Hello <?=$username?> <!-- inserting PHP into HTML -->
<?php if(something): ?> <!-- keep it insular - in its own separate blocks, don't mix the two -->
<button>A button</button>
<?php endif; ?>
</div>
同样,没有&#34;技术优势&#34;它更干净,更好(IMO)。这太混合了PHP和HTML:
<div><!-- straight html -->
<?php
if(something){
echo "<button>A Button</button>"; <!-- html output via php -->
}
?>
</div>
这个简直太可怕了:
<div>
<?php
if(something){
?>
<button>A Button</button>
<!-- make your mind up! -->
<?php
}
?>
</div>
答案 1 :(得分:0)
简而言之,它看起来更干净,你可以看到每个右括号对应的东西(ish)。您仍然可以使用<?php if(foo) { ?>
和<?php } ?>
,但它看起来并不干净。
答案 2 :(得分:0)
优点实际上只是代码(特别是HTML)在代码编辑器中变得清晰和语法突出显示,这可以帮助您发现拼写错误/错误等等。它也更清晰,因为您不会有花括号无处不在,代码都可以很好地缩进。
否则它将全部作为PHP字符串出现,并且您的编辑器不会对其应用任何样式。
答案 3 :(得分:0)
magento团队可以通过这种方式做到这一点有很多原因。
如果您想自动格式化,那么您的IDE将更容易缩进内容,从而使其更具可读性。您还可以使用您想要的任何引号编写简单的html,而不必尝试将其放在“..”中。
我不确定你在表演中获得的打击是另一种方式。我会试着为你解决这个问题,但是如果有的话,那就不会那么多了。