PHPテンプレートからSmartyへ移行

対応付けのメモ
基本的なところとちょっと躓いたところ

変数の表示

PHP

<? php echo $var ?>

Smarty

{$var}

if文

PHP

<?php if ($condition): ?>
   //hoge
<?php else: ?>
   //huga
<?php endif; ?>

Smarty

{if $condition}
   //hoge
{else}
   //fuga
{/if}

foreach文

PHP

<?php foreach($collection as $elem): ?>
    //hoge
<?php endforeach; ?>

Smarty
itemに「$」は要らない

{foreach from=$collection item=elem}
    //hoge
{/foreach}

array

PHP

<?php echo Asset::img($imgpath, array('class'=>'img-frame')) ?>

Smarty

{Asset::img($imgpath, ['class'=>'img-frame'])}

文字列の加算

PHP

<?php echo Html::anchor('url?id=' . $id, $anchor_name) ?>

Smarty
文字列の中にバッククオート(`)で囲んだ変数を入れることで文字列の加算と同じことができる

{Html::anchor("url?id=`$id`", $anchor_name)}

連想配列

PHP

<?php echo $dict['word'] ?>
{$dict.word}