Catalyst

Apache から Lighttpd に丸投げする方法

アプリケーションは裏の Lighttpd で動かしつつ、Apache はそこにリクエストを投げるだけ、という構成にしたい場合は以下のような設定を行います。 NameVirtualHost *:80 <VirtualHost *:80> ServerName app1.example.com ProxyRequests Off ProxyPreserveHost On ProxyPass / </virtualhost>…

Catalyst::Plugin のベストプラクティス

http://d.hatena.ne.jp/tokuhirom/20080603/1212499955にも書いてあるように、Catalyst::Plugin::* 以下のクラスに書いてあるメソッドはすべて $c から呼べるようになります。Catalyst のキモイ面のひとつですが、回避方法はあります。 package Catalyst::Pl…

どうして Catalyst::Plugin を使ってはいけないのか?

http://d.hatena.ne.jp/tokuhirom/20080603/1212456790 http://itpro.nikkeibp.co.jp/article/COLUMN/20080513/301453/いまだに世間ではオブジェクト指向ですらない CGI が溢れている事実を見れば、2006年の Catalyst の記事なんて全然古くないと思います。2…

なんでみんな CLI にこだわるのかなぁ・・

極端に疎結合にしたければ、以下の3つを別々のアプリにすればいいのではないでしょうか? M REST・RPCハイブリッドな WebAPI として層を分ける。 V Ajax とか Flash で作られた動的サイト。 C M と V を橋渡しする。ログイン管理とか、画面遷移とか。 そうし…

MVC で「テーブル:モデル=1:1」が許されるのは小学生まで

本来、MVC の M はロジックを含み、C はイベントハンドリング、ウェブアプリケーションでいえば、画面遷移のみを担当します。Catalyst でスキーマローダーをつかって、MyApp::Model::XXXX を自動生成してしまうと、「テーブル:モデル=1:1」という COBOL…

Catalyst 本(洋書)が出るらしい

http://www.packtpub.com/catalyst-perl-web-application/book Accelerating Perl Web Application Development Understand the Catalyst Framework and MVC architecture Build and test a site with Catalyst Detailed walkthroughs to create sample appl…

cygwin で超簡単 Catalyst

cpan2rpm を使ってパッケージ化してみました。cygwin 上で超お手軽に Catalyst を使いはじめられます。まず、以下のファイルを cygwin のホームディレクトリにダウンロードします。Task-Catalyst-2.0000-cygwin.tar.gzperl コマンドがインストールされていな…

CPANモジュールをRPM化する

CentOS, Fedora 系の Linux には、cpan2rpm というコマンドがあり、これを使 うことで、CPAN モジュールを RPM 化できるようです。依存モジュールを書くこ とで依存モジュールも一緒にインストールしてくれる素敵仕様です。コマンドのインストールは以下のよ…

簡単なアプリケーション

とりあえずモデル使わずに、 アプリケーションクラス ベースコントローラ ベースビュー コントローラ2つ ビュー2つ を用意してみました。 package Hello; use strict; use warnings; use Catalyst qw/-Debug Dumper Static::Simple/; our $VERSION = '0.01…

mod_perl

Apache1.3.X + mod_perl で Catalyst アプリケーションを実行するためのメモです。 catalyst.pl Hello でサンプルアプリケーションを作ります /etc/httpd/conf/httpd.conf に以下の設定を追加します <IfModule mod_perl.c> <Location /hello> PerlSetEnv PERL5LIB /home/hogehoge/public_html/Hello</location></ifmodule>…

Perlでスタックトレース

Java で開発していたときは、エラー発生時に e.printStackTrace() や new Throwable().printStackTrace() でスタックトレースを出力していました。これがないと目隠しでデバッグするようなもので、開発段階では必須でした。Perl でも Devel::StackTrace とい…

カタリストはじめました

最近は Perl の記事がカタリストの記事になりつつあるのでカテゴリーを追加しました。