Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

エンジニア知識共有会発表資料 20090910

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Cargando en…3
×

Eche un vistazo a continuación

1 de 9 Anuncio

Más Contenido Relacionado

Similares a エンジニア知識共有会発表資料 20090910 (20)

Más de ngi group. (17)

Anuncio

Más reciente (20)

エンジニア知識共有会発表資料 20090910

  1. 1. Template::Toolkit はすごい ( らしい ) 2009/09/10 masaki.kawamura
  2. 2. ■ Template::Toolkit ?? <ul><li>Perl 製のテンプレートエンジン Template のディスリビューション名  テンプレートツールキットと言われたり、 TT と略されたりする </li></ul><ul><li>テンプレートエンジンなので主にプログラムと HTML を分けて開発できるようにするもの </li></ul><ul><li>CPAN から install することができる ( 簡単! ) </li></ul>
  3. 3. ■ テンプレートエンジンを使うと。。 <ul><ul><li>#!/usr/bin/perl </li></ul></ul><ul><ul><li>print << &quot;DOC&quot;; </li></ul></ul><ul><ul><li>Content-type:text/html </li></ul></ul><ul><ul><li><html> </li></ul></ul><ul><ul><li><head> </li></ul></ul><ul><ul><li><title> ぱーる </title> </li></ul></ul><ul><ul><li></head> </li></ul></ul><ul><ul><li><body> </li></ul></ul><ul><ul><li>DOC </li></ul></ul><ul><ul><li>my $a = &quot;TemplateToolkit!!&quot;; </li></ul></ul><ul><ul><li>print $a; </li></ul></ul><ul><ul><li>print << &quot;DOC&quot;; </li></ul></ul><ul><ul><li></body> </li></ul></ul><ul><ul><li></html> </li></ul></ul><ul><ul><li>DOC </li></ul></ul>・  example.pl :!perl nnn.pl Content-type:text/html <html> <head> <title> ぱーる </title> </head> <body> TemplateToolkit!! </body> </html> こうではなくて 実行 結果
  4. 4. <ul><ul><ul><li>#!/usr/bin/perl </li></ul></ul></ul><ul><ul><ul><li>use strict; </li></ul></ul></ul><ul><ul><ul><li>use Template; </li></ul></ul></ul><ul><ul><ul><li>my $content = 'TemplateToolkit!!'; </li></ul></ul></ul><ul><ul><ul><li>my $tt = Template->new; </li></ul></ul></ul><ul><ul><ul><li>$tt->process('example.html', </li></ul></ul></ul><ul><ul><ul><li>            { char => $content } ); </li></ul></ul></ul><html> <head> <title> ぱーる </title> </head> <body> [% char %] </body> </html> ・  example.pl ・ example.html + 実行 <html> <head> <title> ぱーる </title> </head> <body> TemplateToolkit!! </body> </html> 結果 こんな感じでファイルを分けることが出来るので、 HTML がわかる人にテンプレの編集をしてもらう時に比較的さわりやすくなる。
  5. 5. <ul><li>・ Template::Toolkit 以前に使っていたものが HTML::Template だったので以下のことが出来なかった。 (HTML::Template と TT しか触ったことはないですが ) </li></ul><ul><li>・ テンプレート側で IF 構文を使用した時、 0,1 の判定しか行なえなかった </li></ul><ul><li>・ プログラム側から受取ったデータを表示するのみで、テンプレート側から引数を与えて処理することが出来なかった </li></ul><ul><li>・ いちいち {TMPL_VAR name=..} と書くのがイヤ </li></ul><ul><li>という、諸々が </li></ul>■ すごい ( と思った ) ところ {TMPL_IF name=hoge} hoge がある {TMPL_ELSE} hoge がない {/TMPL_IF} {TMPL_VAR name=data} // data の中身を表示するだけ
  6. 6. ■ こうなってます <ul><li>テンプレでの IF 文 </li></ul><ul><li>受取った変数の値を評価出来るようになっている </li></ul><ul><li>ロジックに引数を渡して処理する </li></ul><ul><li>MACRO という呼び出し時に実行される処理のブロックを </li></ul><ul><li>定義することができるものがあるので、これを使用して実現できる。 </li></ul>[% IF hoge = ‘TemplateToolkit’ %] TemplateToolkit!! [% ELSE %] HokanoNanika [% END %] [% amacro(‘TemplateToolkit’) %]
  7. 7. [% MACRO amacro(var) BLOCK; IF var; var; ELSE ‘ Argument is nothing’; END %] ・ Amacro という MACRO を定義 [% amacro(‘Template’) %] ・ テンプレートで amacro を呼び出す こうすれば、 Template という文字列を amacro に与えて表示することができる。 MACRO は記述しておいても、呼び出さない限り何も処理をしない ( はず ) なので 無駄な処理が省ける。
  8. 8. ■ TT で他に出来ること <ul><li>- 正規表現での評価 (search) </li></ul><ul><li>[% IF var.search('regex') %] </li></ul><ul><li>  match </li></ul><ul><li>[% END %] </li></ul><ul><li>- 文字の切り出し (substr) </li></ul><ul><li>[% var.substr(0,100) %] </li></ul><ul><li>他にも以下を読めば使うかどうかは別として、 </li></ul><ul><li>  色々出来ます。 </li></ul><ul><li>  Template::Manual::VMethods </li></ul>
  9. 9.  まとめ <ul><li>最近新しいものを使ってみても、古いものを使ったことがないことがあるので、どこがすごいのやらわからないことが多い。 </li></ul><ul><li>若いって怖いなぁと思います。 </li></ul>

×