S eda1a14b50ee24bcab19b62f40858e76 PHPTAL

HTMLの属性で処理を記述できるPHPのテンプレートエンジン。
Zope Page Templatesを実装したものらしい。使ってみたい。

「metal」とか「tales」とか名前のセンスがいい!

http://phptal.org/

使ってみた感じ

少々文法にクセがある。機能はそれなりに十分。DOM解析系ではベスト?if 〜 elseif 〜 ができないようなのが残念。その代わり普通のテンプレートエンジンにはない機能が使える。コーディングスタイルも少し変わる。


ベンチマーク

http://d.hatena.ne.jp/tanakahisateru/20081...
Smartyより若干遅いぐらい

レイアウト機能

こりゃすごいな。
http://lists.motion-twin.com/pipermail/php...

You can have ONE design.html which contains you base design in one macro :


   
     Hello
   
   
     
     
     
And then you just call your design from each template :

My content

foo bar baz

Zend Frameworkへの組み込み

http://taat.pl/article/zend_framework_tuto...

基本的な構文

http://phptal.org/manual/ja/
http://www.webcore.co.jp/techinfo/misc/Zop...

path:

配列やオブジェクトのアクセスは"/"区切りが基本。これは tales の path: の機能らしい


でも"php: "を使う場合は"."区切りになる。

context

contextについての理解が必要。






最初のdivで「div1」、次のdivで「div2」が表示される。タグ=スコープ。ここ理解してなくて最初の頃よくわからなかった。

tal

とかして使う。

tal:define
変数定義する

tal:condition
条件文。評価がtrueなら中身が表示される

tal:repeat
foreach。repeat/{varname}/{**} で特殊な値を取得できる。{**}はkey, index, number, even, odd, start, end, length が使える

tal:omit-tag
条件に合う場合はタグを表示しない。これはたまに使える。

tal:replace
tal:replaceの値の中身で置き換える。タグもなくなる

tal:content
tal:replaceの値の中身で置き換える。タグはなくならない

tal:attributes
属性を出力する。セミコロンで複数指定可。動的に属性定義はできないようだが、存在しない値は無視できる。

tal:on-error
エラーハンドラ

metal

metal:define-macro
マクロを定義

metal:use-macro
マクロを使う

metal:define-slot
スロットを定義。define-macroの中に定義する。

metal:fill-slot
スロットを埋めるuse-macroの中に定義する。

i18n

調べてない

tales

php:
phpが使える。ただし変数名の"$"を除去、"->"は"."に置き換える必要がある。

exists:
issetと同じ。普通は存在しないものにアクセスしたらエラーになるけどそれを回避できる。

default
定義されていない場合にタグの中身を表示する。

structure
HTMLをそのまま出力する

"|"
最初のtrueを返す

コメント

tal:comment が使えるみたいだけど
hogehoge
とするのもあり。






もしかして

    他の人の「PHPTAL」

    S eda1a14b50ee24bcab19b62f40858e76

    無所属ソフトウェアエンジニア

    (1722words)

    最新

      最新エントリ