エンジニア(を目指す)ブログ

エンジニアを目指す学生が書き留めるメモ

PHP_MEMO_テンプレートエンジンSmartyの使い方メモ


1. テンプレートエンジンの役割

  • PHPファイルにはHTMLを埋め込むことが出来る
    • デザインとロジックが一つのファイルに
  • 実際の開発ではデザインはデザイナーが、ロジックはプログラマーが担当
    • 分業しづらく、見通しも悪い
  • テンプレートエンジンを用いてHTML部分のテンプレートを作成することで、
    デザインとロジックの分離を行う。

2. Smartyとは


3. 基本的な利用の流れ

(PHP側)
  • smartyオブジェクトの生成

    • $smarty = new Smarty();
  • assignメソッドを用いてテンプレート内で利用する変数と割り当てるデータを指定

    • $smarty->assign("key", "data");
      (key : テンプレート内で使う変数名, data : keyに割り当てるデータ)
    • 連想配列によってまとめて指定することも可
      $smarty->assign(array("key1"=>"data1", "key2"=>"data2"));
  • displayメソッドを用いて、使用するテンプレートファイルを選択し、実行

    • sample.tplの場合 $smarty->display("sample.tpl");
(HTMLテンプレート側)
  • 「.tpl」拡張子のファイルを編集することになる
  • 通常通りHTMLを記述していく
  • PHP側から送られてきた変数を利用する場合
    • {$key}のように記述
    • (例)
      <title>{$key}</title>と記述すると内部では
      <title>data</title>のように処理される

備考

  • 様々なライブラリを提供しているPEARのHTML_QuickFormなどと連携することで テンプレート1枚のみで登録・確認・エラー表示などができる
    • 後日、HTML_QuickFormについてまとめる予定
  • 参考書籍 : 「PHP+MySQLマスターブック」| 永田順伸

  • やっぱりはみ出す目次の黒丸