在Magento的设计文件中使用备用php语法有哪些技术优势

时间:2012-08-31 13:17:28

标签: php templates magento

使用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>

4 个答案:

答案 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,而不必尝试将其放在“..”中。

我不确定你在表演中获得的打击是另一种方式。我会试着为你解决这个问题,但是如果有的话,那就不会那么多了。