0

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

4 に答える 4

2

「長所」や「短所」はありません。それは好みと保守性に帰着します。

覚えておいてください=>あなたは本当にPHPとHTMLの構文を分離しているべきです。PHPとHTMLを別々のファイルに保存します。これは保守性と他の多くの理由によるものです(検索すると多くの情報があります)。2つのことを完全に分離する方法はありません...常にPHP変数をHTMLなどに挿入する必要がありますが、これは最小限に抑える必要があります。

したがって、Wordpress、Codeigniterなどのテンプレートファイルでその代替構文を使用することを好みます。これは、テンプレートファイルのHTMLにPHPを挿入ているため、これらの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>

繰り返しになりますが、「技術的な利点」はなく、よりクリーンで優れています(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>
于 2012-08-31T13:24:17.973 に答える
0

要するに、それはよりきれいに見え、あなたはそれぞれの閉じ中括弧が何に対応するかを見ることができます(ish)。<?php if(foo) { ?>とは引き続き使用できますが<?php } ?>、見た目はきれいではありません。

于 2012-08-31T13:24:07.170 に答える
0

利点は、コード(具体的にはHTML)が明確になり、コードエディターで構文が強調表示されることだけです。これにより、タイプミスやバグなどを見つけることができます。また、中括弧がどこにもないため、非常にクリーンです。コードはすべてうまくインデントできます。

そうしないと、すべてPHP文字列として検出され、エディターはそのようなスタイルを適用しません。

于 2012-08-31T13:25:21.600 に答える
0

Magentoチームがこの方法でそれを行うことができた理由はいくつもあります。

読みやすくする自動フォーマットが必要な場合は、IDEのインデントが簡単になります。また、「..」に入れようとするのではなく、必要な引用符を使用してプレーンHTMLを作成することもできます。

別の方法でパフォーマンスを行ったときに受けるヒットについてはよくわかりません。私はあなたのためにそれを理解しようとしますが、どちらかといえばそれほど多くはありません。

于 2012-08-31T13:26:41.053 に答える