12 Things I dislike with CGI::Application
http://blog.nomadscafe.jp/archives/000557.html
より。
かぜぶろさんのに追加してみます。
4.使用プラグインが多いと、記述が面倒になる。
例えば↓
use CGI::Application::Plugin::TT;
use CGI::Application::Plugin::LogDispatch;
use CGI::Application::Plugin::Session;
use CGI::Application::Plugin::Config::Simple;
use CGI::Application::Plugin::Forward;
こんな感じ。激しく(゚Д゚)ウゼェェェ
5.名前がダサいw
刺身☆ブーメランさんがcgiapp=非モテ?な件
で書かれていますが、ネーミングを考えたほうがいいと思う。
AjaxやCatalystじゃないですけど、名前ってかなり重要だと思う。
じゃあ、俺がいいネーミングを付けられるかと言うとそれはムリポw
なのでMLの結果に期待。(他力本願ヽ(´ー`)ノマンセー)
とりあえずこんな感じで。
追加しても12にみたね〜w
と、愚痴ってても仕方ないので一つ提案。
4を改善してみました。
ソースは↓。
package CGI::Application::Advance;
use strict;
use warnings;
use base 'CGI::Application';
use UNIVERSAL::require '0.10';
our $VERSION = '0.01';
our @ISA;
sub import {
my ( $self, @options ) = @_;
my $caller = caller(0);
no strict 'refs';
push @{"$caller\::ISA"}, $self;
for my $option ( @options ){
my $plugin = "CGI::Application::Plugin::$option";
$plugin->use;
}
}
1;
Catalyst風にプラグインをどしどしインスコかませます。
使い方例は↓
package NekoAjax;
use strict;
use warnings;
use base qw(Class::ErrorHandler);
use CGI::Application::Advance qw/ TT DebugScreen /;
sub cgiapp_init {
my $self = shift;
}
sub cgiapp_prerun {
my $self = shift;
$self->header_props( -charset => 'UTF-8', -type => 'text/html');
}
sub do_error{
my $self = shift;
$self->tt_include_path("./template/");
return $self->tt_process('error.tt',{error_msg => "System Error"});
}
1;
どうでしょ?
でも、こんなのは大元であるCGI::Appに組み込んでほしいんですよね。
runメソッドの改善といい色々と直しどころ満載名CGI::Appですが、
CGI::App自体大きくないし、初心者にも理解しやすく使いやすいから
敷居も低いですし、もっと活発になってほしいですね。
刺身☆ブーメランさんも書いてらっしゃいますが、
日本人のコミュニティーがあってもいいかなぁと。
誰か旗揚げしませんw(他力本願ヽ(´ー`)ノマンセー)
(追記)
6.ヘルパースクリプトは必須でしょ!!欲しい!!
7.デフォルトでDispatch起動して欲しい。
今更、一個一個起動CGI作ってられんし、非現実的。
8.Catalystみたいにテストサーバがあるといいなぁ。
9.Plugin::TTを使わなくてもTTをデフォで使えるようにして欲しい。
HTML::Templateもサポートのままで。