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 にモジュールを組み込まなきゃいけないのは嫌だなぁ。
スポンサーサイト
些細なことですが die_on_bad_params ではなくて、global_vars ですね。 ところで、現状に不満なら自作という手もありますよ。 (嫌味ではなく。) そういう自分も、HTML::Template を使っているくせに 「param() で与えられていない変数が template に書いてあっても それをはじく機能が無い」ことが不満なので、 パッチでも書いてから人に言えという話ですが。
LoBex | URL | 2006-02-16(Thu)05:21 [編集 ]
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/ )というものもあるようです.
hio | URL | 2006-02-16(Thu)12:06 [編集 ]
> ところで、現状に不満なら自作という手もありますよ。 わたしの人生における優先順位付けにより、自作はしません。 できればパッチくらいは投げたいところですが、作者がとことん 頑固そうですね。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 に追加しました。
68user | URL | 2006-02-17(Fri)13:30 [編集 ]
ありがとう御座います。 外部コンテンツ連動型のチャットを作ろうと思ってPERLでSOCKETをしようと思い、 ↓のページをちらりと見たんですがhttp://ash.jp/perl/socket_http.htm あー駄目…書き方がぶっきらぼうな職人肌過ぎて分らん… もう6年以上プログラムやってるのになあ… って軽くションボリック(´・ω・`)な時に次の検索でここにたどり着きましたhttp://x68000.q-e-d.net/~68user/net/http-2.html 書いてる事は一緒なんだけどこちらはもの凄く丁寧な書き方で なんも考えずに一発でHTMLをゲットできるし感覚的に分るしでいい事ばかりでした。 素晴らしい知識を公開して下さってありがとう御座いますm(__)m
(´・ω・`)ションボリスト | URL | 2006-02-18(Sat)19:41 [編集 ]
HTML::Seamstress 使ったことが無いですが HTML::Seamstress に興味があります。http://search.cpan.org/~tbone/HTML-Seamstress/ と言いつつ自分は HTML::Template しか使ったことがありません。 HTML::Template で不満なのは、全ての TMPL_VAR の ESCAPE をデフォルトで 有効にする方法が無いことかな。エスケープしたくないものだけ、明示できた らいいのに。
お針子 | URL | 2006-02-28(Tue)01:14 [編集 ]
> (´・ω・`)ションボリスト ありがとうございます。わかりにくい表現などありましたら ご指摘ください。 > HTML::Seamstress とりあえず http://68user.blog27.fc2.com/blog-entry-28.html の 一覧に追加させていただきました。上記 URL にはチマチマと調べて 追記していますが、さっぱり完成しません。 しかし第四世代テンプレートとは大きく出たものですね。 > HTML::Template で不満なのは、全ての TMPL_VAR の ESCAPE を > デフォルトで有効にする方法が無いことかな。 ごもっともです。ところで View に渡す前にすべてエスケープする MVC なシステムをわたしは知らなくて、なぜないのかなとずっと 思っているのですが、存在するんでしょうか?
68user | URL | 2006-03-01(Wed)01:58 [編集 ]
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.
ceekz | URL | 2006-03-16(Thu)06:40 [編集 ]
ありがとうございます。 http://68user.blog27.fc2.com/blog-entry-28.html に追記させていただきました。
68user | URL | 2006-03-16(Thu)12:36 [編集 ]
トラックバック URL
この記事にトラックバックする(FC2ブログユーザー)
興味深い内容で、とても楽しく読ませていただきました。
はろーねっと 2006-03-04 (Sat) 07:14
セカンドライフ Linden Scripting Language プログラミング入門 (バーチャルワールドガイドブックシリーズ) (バーチャルワールドガイドブックシリーズ)・[IT][開発]Perlに込められた言語開発者の思想visualbasicvis ...・だからRubyって?・アッー! Rails!・[perl]「Perl
Web開発のレス 2007-10-06 (Sat) 08:26