#Smartyを便利に使おう!
コードを見ていて、知らないPHPのような書き方が出てきて戸惑いました。
調べるとSmartyというものを使ってるみたいです。
覚えたら便利そうなので、使い方を覚えて活用していこうと思い、この記事を作成しました。
##そもそもSmartyとは何か
簡単にいうと、PHP用のテンプレートエンジンのことです。
- テンプレートエンジン
PHPとHTML(CSS)を分けることができ、分割する理由として同じ処理で別の内容を表示したいとき、表示内容だけ変えればいい。
##Smartyを使い方
###用意
まずSmartyを使うためには、公式のHPからダウンロードする必要があります。
ダウンロードしたら、保存をしPHPのファイルからrequireでSmarty.class.phpというファイルを呼びます。
###基本的な構文
基本的に{}でを使ってタグに埋め込みます。
コメントは、
{* ここにコメントを書く *}
このようにして書けます。
説明 | 構文 |
---|---|
標準の変数 | {$foo} |
配列 | {$foo[]} |
連想配列 | {$foo.bar} |
オブジェクトのプロパティ | {$foo->bar} |
オブジェクトのメソッド | {$foo->bar()} |
configファイル変数 | {#foo#} |
{assign}関数 | {assign var=foo value='baa'}{$foo} |
##関数
関数を組み込みで入れることもできます。今回はよく使う関数だけ説明します。
###foreach
下のような簡単は配列を表示したとき、
<?php
$arr = array('red', 'green', 'blue');
$smarty->assign('myColors', $arr);
?>
HTMLのタグにこのように書けば、表示されます。
<ul>
{foreach $myColors as $color}
<li>{$color}</li>
{/foreach}
</ul>
出力はこのようになります。
<ul>
<li>red</li>
<li>green</li>
<li>blue</li>
</ul>
###if構文
演算子
PHPと同じ演算子も使えますが、代替することも出来ます。
PHP | Smarty |
---|---|
== | eq |
!= | ne,neq |
> | gt |
< | lt |
>= | gte,ge |
<= | lte,le |
=== | なし |
! | not |
% | mod |
例えばこのように使います。
{if $name eq 'Fred'}
Welcome Sir.
{elseif $name eq 'Wilma'}
Welcome Ma'am.
{else}
Welcome, whatever you are.
{/if}
またこのようなORの文は、このように書きます。
{if $name eq 'Fred' or $name eq 'Wilma'}
...
{/if}
上と同じです。
{if $name == 'Fred' || $name == 'Wilma'}
...
{/if}
このようにPHP関数も組み込むことが出来ます。
{if isset($foo) }
.....
{/if}
他にもたくさんあるので公式ドキュメントを見てください。
##まとめ
今回は初心者向けに説明をしましたが、いろいろ機能を使えば、素早く構築や追加などが素早くできます。
また、バージョンによって形式が変わることもあるので時々バージョンアップもしてみてください。
##参考文献
Smarty公式ホームページ