【Smarty】SmartyのインストールからHelloWorldまで

PHPのテンプレートエンジンSmartyをインストールして、HelloWorldをブラウザ上に表示するまでの方法を記述します。

[環境]
Windows10
PHP 5.6.20
Smarty 3.1.30

手順

  1. Smartyのインストー
  2. ディレクトリを構成する
  3. テンプレートを作成する
  4. phpファイルからテンプレートを呼び出す
  5. サーバーを起動する

1. Smartyのインストー

Smartyを公式サイトからダウンロードします。

http://www.smarty.net/docsv2/ja/

ダウンロードしたファイルを解凍したら、php/includes/に配置します。 (includesが存在しなければ作成します。)

C:/php/includes/Smarty

次にphp.iniのinclude_pathのコメントを外して有効にします。

include_path = ".c:¥php¥includes"

phpinfo関数で有効になったことを確認できます。

<?php
phpinfo();

ブラウザからアクセスして、include_pathがphp\includesとなっていればOKです。 f:id:taiki_sano:20170511004302p:plain

2. ディレクトリを構成

実際にSmartyを利用するアプリのディレクトリを構成します。
必須となるのはSmartyのテンプレートを格納するディレクトリと、テンプレートのコンパイル結果を格納するディレクトリです。 ここではそれぞれtpltpl_cとします。

プロジェクト名/smarty/tpl
プロジェクト名/smarty/tpl_c

次にドキュメントルートとなるディレクトリを作成します。
ここではpublishとします。

プロジェクト名/publish

3. テンプレートを作成する

tpl/にhello.tplファイルを作成します。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Hello World!</title>
  </head>
  <body>
    Hello {$name}!
  </body>
</html>

{$name}にPHPファイルから渡されたデータが出力されます。

4. phpファイルからテンプレートを呼び出す

Smartyクラスを読み込んでテンプレートに渡したい値などを設定します。

<?php
// Smartyクラスを読み込む
require_once("Smarty/libs/Smarty.class.php");

// Smartyのインスタンスを生成し、
// テンプレートディレクトリと
// コンパイルディレクトリを読み込む
$smarty = new Smarty();
$smarty->template_dir = "../smarty/templates/";
$smarty->compile_dir = "../smarty/templates_c/";

// assignメソッドを使ってテンプレートに渡す値を設定
$smarty->assign("name", "World");

// テンプレートを表示する
$smarty->display("hello.tpl");

5. サーバーを起動する

ビルトインサーバーを起動してブラウザからアクセスします。

$ php -S localhost:9000

サーバーが立ち上がったら、「localhost:9000/hello.php」にアクセスします。