Entries

Perl の web アプリ作成手法 その2

Perl の web アプリ作成手法 のつづき。

時間をみつけて調べてみたが、HTML::Template も Template Toolkit
も気に入らない。

HTML::Template は低機能すぎる。ある意味、その割り切りっぷりは
評価できるが、それを踏まえたとしても細かな仕様に不満がある。
たとえば、TMPL_LOOP 中から上位の TMPL_VAR にアクセスできない、とか。
die_on_bad_params=0 にすればアクセスできるが、チェック機能がすべて
OFF になってしまうので、そんなことはしたくない。

Template Toolkit はもっと気に入らない。なぜテンプレートごときで
独自の文法を覚えなければならないのか。

web 開発環境で一番好きなのは「Java Servlet + JSP で MVC」なのだが、
同類のテンプレートエンジンが Perl にもないものか。

…と思って調べてみたら、やっぱりあった。HTML::Mason
でも、Apache にモジュールを組み込まなきゃいけないのは嫌だなぁ。
このエントリーをブックマークに追加 ブックマークに追加する
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://68user.blog27.fc2.com/tb.php/29-289a85fd

2件のトラックバック

[T1] PCトラブル

興味深い内容で、とても楽しく読ませていただきました。

[T12] セカンドライフ Linden Scripting Language

セカンドライフ Linden Scripting Language プログラミング入門 (バーチャルワールドガイドブックシリーズ) (バーチャルワールドガイドブックシリーズ)・[IT][開発]Perlに込められた言語開発者の思想visualbasicvis ...・だからRubyって?・アッー! Rails!・[perl]「Perl

8件のコメント

[C31] 些細なことですが

die_on_bad_params ではなくて、global_vars ですね。

ところで、現状に不満なら自作という手もありますよ。
(嫌味ではなく。)
そういう自分も、HTML::Template を使っているくせに
「param() で与えられていない変数が template に書いてあっても
それをはじく機能が無い」ことが不満なので、
パッチでも書いてから人に言えという話ですが。

[C32] HTML::MasonはCGIでもつかえるようです

http://search.cpan.org/~drolsky/HTML-Mason-1.32/lib/HTML/Mason/CGIHandler.pm
試してみたわけではないのですが^^;
あと Embperl (http://search.cpan.org/~grichter/Embperl-2.1.0/)というものもあるようです.

[C33]

> ところで、現状に不満なら自作という手もありますよ。
わたしの人生における優先順位付けにより、自作はしません。
できればパッチくらいは投げたいところですが、作者がとことん
頑固そうですね。ML を見ると、これまでたくさんの新機能の提案
に対して、
 I don't like this.
てな感じで片付けてます。まぁ頑固だからここまでシンプルさを
維持できているんでしょうが、HTML::Template の拡張だけで
 HTML::Template::Ex
 HTML::Template::Extension
 HTML::Template::Set
 HTML::Template::Expr
 HTML::Template::HTX
 HTML::Template::HashWrapper
 HTML::Template::Pro::Extension
と乱立しているのを見ると、果たしてこれがよい状況と言える
のかなぁと思います。

> 「param() で与えられていない変数が template に書いてあっても
> それをはじく機能が無い」
全く同感です。そして param() で指定した変数が template に書いて
ないとエラーなわけですが、それってどちらかといえば逆にすべき
じゃないかと思っています (両方エラーになるのが最も望ましいとは
思いますが)。

例えば、一般ユーザ向けのページ A と、管理用ページ B に何かを表示
する場合、オブジェクト生成は一箇所にまとめて、表示はページ A と B
それぞれで行いたいわけです。

しかしオブジェクトに管理用ページ B にしか使用しない情報を含めると、
ページ A でエラーというのが解せません。

おそらく query で頑張れば自前でのチェックはできるんでしょうが、
何のためのテンプレートエンジンか、と思ってしまいます。

> HTML/Mason/CGIHandler.pm
ありがとうございます。MVC 好きなのでこっちの方がよいですね。
それでもやはりモジュール組み込みが必要なのが残念です。

> Embperl
そういえばありましたね。すっかり忘れていました。

とりあえず
 http://68user.blog27.fc2.com/blog-entry-28.html
に追加しました。
  • 2006-02-17
  • 68user
  • URL
  • 編集

[C34] ありがとう御座います。

外部コンテンツ連動型のチャットを作ろうと思ってPERLでSOCKETをしようと思い、
↓のページをちらりと見たんですが
http://ash.jp/perl/socket_http.htm
あー駄目…書き方がぶっきらぼうな職人肌過ぎて分らん…
もう6年以上プログラムやってるのになあ…
って軽くションボリック(´・ω・`)な時に次の検索でここにたどり着きました
http://x68000.q-e-d.net/~68user/net/http-2.html
書いてる事は一緒なんだけどこちらはもの凄く丁寧な書き方で
なんも考えずに一発でHTMLをゲットできるし感覚的に分るしでいい事ばかりでした。
素晴らしい知識を公開して下さってありがとう御座いますm(__)m
  • 2006-02-18
  • (´・ω・`)ションボリスト
  • URL
  • 編集

[C35] HTML::Seamstress

使ったことが無いですが HTML::Seamstress に興味があります。

http://search.cpan.org/~tbone/HTML-Seamstress/

と言いつつ自分は HTML::Template しか使ったことがありません。
HTML::Template で不満なのは、全ての TMPL_VAR の ESCAPE をデフォルトで
有効にする方法が無いことかな。エスケープしたくないものだけ、明示できた
らいいのに。
  • 2006-02-28
  • お針子
  • URL
  • 編集

[C36]

> (´・ω・`)ションボリスト
ありがとうございます。わかりにくい表現などありましたら
ご指摘ください。

> HTML::Seamstress
とりあえず http://68user.blog27.fc2.com/blog-entry-28.html
一覧に追加させていただきました。上記 URL にはチマチマと調べて
追記していますが、さっぱり完成しません。

しかし第四世代テンプレートとは大きく出たものですね。

> HTML::Template で不満なのは、全ての TMPL_VAR の ESCAPE を
> デフォルトで有効にする方法が無いことかな。
ごもっともです。ところで View に渡す前にすべてエスケープする
MVC なシステムをわたしは知らなくて、なぜないのかなとずっと
思っているのですが、存在するんでしょうか?
  • 2006-03-01
  • 68user
  • URL
  • 編集

[C37] default_escape

HTML::Template 2.8 から default_escape によって、デフォルトでエスケープ出来るようになっているようです。

default_escape - Set this parameter to "HTML", "URL" or "JS" and HTML::Template will apply the specified escaping to all variables unless they declare a different escape in the template.

[C38]

ありがとうございます。
 http://68user.blog27.fc2.com/blog-entry-28.html
に追記させていただきました。
  • 2006-03-16
  • 68user
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

Author:68user
http://X68000.q-e-d.net/~68user/

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Powered By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ