catalyst

C::P::FV::AutoのCatalyst 5.8対応パッチを書いた

typesterさん謹製のC::P::FV::Autoはとっても便利なのですが、例に漏れず5.8対応されていません。で、意外とニーズがあるようなのでさくっとpatch書いてみました。(といってもMRO::Compat化したくらいですが…)ただ、sub forwardでlocal $NEXT::NEXT{}してる…

モダンなCatalystコンポーネントを書くときは

Catalystがモダンかどうかは置いておいてCatalystのコンポーネントを書く時のお作法として大昔は ... use base qw(Catalyst::Action); use NEXT; sub execute { my $self = shift; $self->NEXT::execute( @_ ); ... ちょっと前は ... use base qw(Catalyst::…

Catalyst 5.7 vs 5.8でベンチマークを取ってみた

CPANにMoose版Catalystである5.8のdeveloper releaseが出ていたのでベンチマーク取って見ました。 なお、Catalyst::ClassDataがパッケージに含まれていなかったので、これだけリポジトリから持ってきて動かしてます。テスト内容はcataltst.pl MyAppで出来る…

Catalyst::View::QRCode

とある頼まれごとでQRコードを生成する必要がでてきたので、昔作ったC::V::GD::Barcode::QRcode(モジュール名なげーよ)を引っ張り出してきたんだけど、何か猛烈に古臭いしGD使いたくなかったのでid:clouderさんのImager::QRCodeとハイブリッドにしてCoderepo…

Catalyst+DBIC+TT+Data::Page::Navigationでページング

これもよく使うくせによく忘れるので備忘。まずはCatalystのControllerでData::Page::NavigationをuseしてMyApp::Controller::User package MyApp::Controller::User use strict; use warnings; use parent 'Catalyst::Controller'; use Data::Page::Navigat…

最近使ってるCatalystなアプリケーションのディレクトリ構成

最近はもっぱらこんな構成 MyApp/ |-- Changes |-- Makefile.PL |-- README |-- conf - 設定ファイルはまとめてここへ | `-- myapp.conf |-- docs - ドキュメントとかSQLとか |-- lib | |-- MyApp | | |-- Base - Base::Controllerとか基底クラス | | |-- Co…

Catalyst::View::Tmplatedとstashの関係

Catalystのstashをグローバル変数的に使うのは - Charsbar::Note ビューのテンプレート設定とかもそう。古くさいC::V::TTではstash経由でテンプレを渡しているけど、新しいC::V::Templated ベースのものはstashなんぞ通さず、$c->view(...)->template('templ…

ActionClassのChain

typesterさんから sub method :ActionClass('Foo') :ActionClass('Bar') {} 的なことできないかっつー話があって、当然できると思ったので即答で「できる」と嘘をついちゃった。Catalyst::Controllerのregister_actionsからcreate_actionを呼んでて sub crea…

最近のCatalystのプラグインのロードの仕方

昔のCatalystのプラグインのロードは全て use Catalyst qw/-Debug ConfigLoader Static::Simple/; ってなってたんだけど、最近ディストリビューションでは __PACKAGE__->setup( qw/-Debug ConfigLoader Static::Simple/ ); ってなってる。 コミュニティに学…

Catalystのデフォルトのconfigフォーマットが変わった

[Catalyst] IMPORTANT: To all Catalyst::Whatever Authors, please read and ACT YAML is not an appropriate configuration format for use in perldoc because both yaml and perldoc are sensitive to white space. Therefore they interact. Even worse…

Catalystからメールを送るには

use Catalyst::View::Email or Catalyst::View::Email::Template DO NOT use Catalyst::Plugin::Email