Smartyのデバッグ

Smartyのプロパティを見ていたら$debug_ctrlを発見。初期値'NONE'。これを'URL'に変更して例えばfoo.php?SMARTY_DEBUG=onとかやると$debug=falseのときでもデバッグができる。

隠しプロパティだけど$_smarty_debug_idがあるのでそれを変更すれば任意の値でデバッグ可能。

$_smarty_debug_id = 'HOGE'
foo.php?HOGE=on

JSmartyとは?

概要

JSmartyはPHPSmartyを模したJavaScriptで動くテンプレートエンジンです。テンプレートAPI部分についてはSmartyを準拠しており、それ以外にも文字列処理が便利になるようにAPIを提供します。

Hello World!!

<script src="JSmarty.js"></script>
<script src="JSmarty/Compiler.js"></script>
var smarty = new JSmarty();
smarty.assign("foo", "Hello World!!");
smarty.display("string:{$foo}"); // document.write("Hello World!!");

主要テンプレート処理API

書式 説明
assign("foo","bar") 変数の割り当て
display("識別子:テンプレート名") テンプレート処理の実行および表示。JSmarty.System.print()が内部的には呼び出されている。
fetch("識別子:テンプレート名") テンプレート処理しその結果を返す。

*テンプレート処理のAPISmartyに準拠しています。JSmartyではdisplayよりもfetchがメインで利用されると思います。

var result = smarty.fetch("string:{$foo}");
document.getElementById("foo").innerHTML = result; // Hello World!!

その他のAPI概要

API 説明
JSmarty.Systemオブジェクト FILE I/OなどのAPI
JSmarty.Templatesオブジェクト テンプレートデータ
JSmarty.Pluginオブジェクト プラグイン操作
JSmarty.Bufferオブジェクト 文字列連結の高速化
JSmarty.Errorオブジェクト エラー処理

構文

Smarty準拠です。また独自のCompiler.jsを実装することによって自分好みのテンプレート構文を開発することができます(JSmartyでPerlのTTの構文を使うっていうこともできるかも?)。JSmartyでは標準としてJSmarty/Compiler.jsが採用されています。主な構文は以下の通りです。

書式 説明
{$foo} 変数
{$foo.barc|at:"foo"} 修正子付変数
{foo} function関数
{bar}〜{/bar} block関数
  • 書式の{}は left_delimiter = { 、right_delimiter = }として変更可能です。

システム要件

クライアントサイドでは、IE6(SP2)、Safari2、Firefox(1.0以上)、Opera(8.0以上)、Apollo(Alpha)で動作確認。サーバーサイドではAJAJAやJava6(JRunScript)などで確認しています。

ライセンス

LGPLになります。

改訂履歴(since 2007/04/14)

  • 2007/04/14 0.3.1リリース

Web2.0時代におけるソリューションのご紹介

というセミナーがCSKシステムズ主催で行なわれらしい。サブタイトルが【Web2.0の実態と企業経営に与える影響について】大変というか至極興味有。大阪だから行くの無理だけど。面白そう。なのでメモ。

記事をよく見たら散財.comという節が。散財.com…………。しばらく考えた。脳内検索でようやくHIT!で、よく拝見するid/amachang氏で登場してくるフレーズ。うん。

ttp://www.csk.com/systems/seminar/sm_nishi/060802sol.html リンク切れ