LoginSignup
33
33

More than 5 years have passed since last update.

Smartyを便利に使おう!基本的な使い方

Last updated at Posted at 2018-06-05

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公式ホームページ

33
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
33