Catalyst
Catalyst::Helperが出力するMyApp.pmに、 use Catalyst::Runtime '5.70'; ってあるじゃないですか。 あまりHelper使わないから気付かなかったけど、良く見たら文字列になってるんですよね。ってことは、Catalyst::Runtimeバージョン5.70以上を要求してるわけ…
もう1年以上前からになりますが、 lighttpdでファイルが存在しない場合にFastCGI-Catalystへ飛ばす設定とプラグイン - ヒルズで働く@robarioの技ログ このようなプラグインを使っていました。この度(主に自分都合により)このプラグインをCPANに0.0.1として…
Catalystのバージョンを5.71にしたらこんなメッセージが出るようになりました。 [warn] Used regexp fallback for $c->model('View::TT'), which found 'MyApp::Web::View::TT=HASH(0x21d44d0)'. Relying on regexp fallback behavior for component resolut…
{ local $c->view->template->service->{WRAPPER} = []; $c->forward( $c->view ); }
EmacsでPerl開発する上で必須な設定 #2 - flymake - Kentaro Kuribayashi's blog Catalystで、C::E::HTTP::Restarterを使ってると、flymakeが作ったFoo_flymake.pmを検出して勝手に再起動しまくるので超困る。 C::E::HTTP::RestarterがFoo_flymake.pmを認識…
リクエストの取り扱いは現在、「静的ファイルがあったらそれを返し、無かったらバックエンドのCatalystに飛ばす」って感じで落ち着いています。 Apacheならmod_rewrite、lighttpdならserver.error-handler-404とかで。 CatalystTestServerではC::P::Static::…
何も考えずに $HTTP["host"] == "backend.example.com" { proxy.server = ( "" => (("host" => "127.0.0.1", "port" => 3000))) } などとしてしまうと、$c->uri_forが http://backend.example.com:3000/ になってしまって都合が悪い。、大抵バックエンドには…
Catalyst::Devel-1.05が出てた。catalyst.plで作られるRoot.pmの中身が変わっていた。 PrivateアクションがPathアクションに変更 またはまった。default アクションでの args の扱い - ヒルズで働く@robarioの技ログ defaultアクションの属性はPathが良いで…
「そんなことしなくてもいいよ」的な猛烈な勘違いをしてたらすみませんがこっそり教えてください。Apacheの RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ http://127.0.0.1:3000/$1 [L,QSA]みたいなイメージで、 ファイルが存…
unknownplace.org - 2008/02/05 - JSON::XS を実戦投入したCatalyst::View::JSON-0.23(2008/02/22)からencode_jsonが使えるようになってるっぽ。 package MyApp::View::JSON; use strict; use base 'Catalyst::View::JSON'; use JSON::XS (); my $encoder = …
Catalystを語る人 ・・・く、くるしー!っていうか別に駄洒落にもなってない!語感が似てるなーって思っただけ(><) くだらないと分かりつつも思い付いた事を言わずにいられないのは関西人の性です。あっ!そこのあなた!スターとか付けなくていいですか…
(急いで書いてるので間違ってたらごめん。)Catalyst::View::TT::ForceUTF8を使って、テンプレート内でTemplate::Plugin::Clickableとか使うと Malformed UTF-8 character (fatal)とか言って落ちる。 #--- MyApp/View/TT.pm ---# package MyApp::View::TT; …
あー。PadWalkerってそういうモジュールだったのか。 http://nyarla.net/blog/perl-tips4 これ使ったら@Catalyst::View::TT::ForceUTF8::PROVIDER_CONFIG_KEYSを書き換えられるじゃん。 色々終わったらPadWalker使って書き直そう。 package MyApp::View::TT;…
(タイトル考えるのって面倒) my $template = $c->req->path . '.tts'; my $template = $c->action . '.tts'; の方がいいかも。アクションがindexとかdefaultの時のテンプレート名がおかしくなっちゃうので。(あと、Regex使ってる時とかマッチする奴全部を…
Catalystの変更予定(?) - ヒルズで働く@robarioの技ログ NEXTよりClass::C3のほうが正しいMROになるのはわかるんだが - masaki@catalyst - Catalystグループあー、うん。確かにC::P::*でClass::C3使ってると、プラグインの組み合わせによってはエラーで起…
lib/MyApp/Controller/Root.pmってあるじゃないですか。namespaceが空の奴。 そいつのせいで自分のRoot.pmが作れないじゃないですか。http://localhost:3000/root/みたいな。 Root2.pm作ってnamespaceいじればできるけど。そんなのやりたくないじゃないです…
しばらくぶりにCatalystを触っていたら、なにやらちょこちょこ変更されつつあるようなので、自作プラグインもちょこちょこ書き換えました。 configに使うキーにモジュール名を使う Catalyst::Plugin::ConfigLoader - Load config files of various types - m…
筆者は、なるべくデザインをローカル(つまりfileプロトコル)で確認できるように、外部JS/CSS/画像へのパスは絶対パスではなく相対パスで書くようにしています。また、少し話はズレますが、あるアクション固有の静的リソースの配置を /action/ /images/acti…
Devel::Bayside - デフォルトアクションの取り扱い自分はdefaultアクションをRoot.pmだけに書いて、404 Not Foundを返すようにしています。 package MyApp::Controller::Root; sub default : Path { my ( $self, $c ) = @_; $c->res->status(RC_NOT_FOUND); …
default : Privateだと、引数($c->req->args)にnamespaceが含まれてしまって面倒な感じになるので、default : Pathにしておくが吉です。 またはまった。default アクションでの args の扱い - ヒルズで働く@robarioの技ログ を参照のこと。
次、SQLLiteのpath をフルパスにしないといけないっぽい件。path_toメソッド使って気分すっきりしました。 connect_info => [ 'dbi:SQLite:' . YourApp->path_to('db/your_db.db'), ], これ見て思い出したんですが、この設定をmyapp.ymlに書く場合は connect…
[開発] Catalystベースのアプリケーションのlib構成 - D-5 出張版ああああぁぁぁぁ。これヽ(゚д゚)ノ ええじゃないか 近いうちに時間ができたらリポジトリ再編成しよっと。 って思ったけど、lib/MyAppじゃなくてlib/直下にlib/MyApp/Webじゃなくてlib/MyApp直…
http://blog.mizzy.org/articles/2007/05/06/dbix-class-schema-loader unknownplace.org - 2007/05/07 - Schema::Loader 使い方 更に、自分の場合は myapp.yml に C::M::DBIC::Schema の設定が書いてあるので use DBIx::Class::Schema::Loader qw(make_sche…
普通に作るとプラグインの読み込み方は以下のようになります。 package MyApp; use Catalyst qw/-Debug ConfigLoader Static::Simple/; __PACKAGE__->setup; でもこれだと条件によって読み込むプラグインを変えたい時は、その条件分岐をBEGINに突っ込んだり…
あまり「static/以下は静的」みたいな振り分け方は好きではなくて、「拡張子が有ったら静的・無かったら動的」として振り分けるようにしています。Lighttpd + FastCGIだとこんな感じで「拡張子を含まないリクエストをfastcgiで処理する」という条件でできま…
だけど、もー、どうにもこうにも動かないのである。 404エラーじゃ無くて、真っ白になってしまう。自分の Cygwin + lighttpd@cygpackage + fcgi@cygpackage な環境では、fastcgi.serverの設定が"host" => "localhost"だと同じく真っ白になる症状で、"host" =…
以前書いたエントリの修正です。get_columnsだとinflateを通らないようなので、明示的にアクセサを呼ぶように修正しました。使い方には変更ありません。 sub inflate_row { my $row = shift; my %data; foreach my $column ( $row->result_source->columns )…
久々にCatalystアプリをApache2/worker+ModPerl2な環境で動かしてみたところ、 DBIx::Class::ResultSet::find(): no sth generated via sql (DBD::mysql::db STORE failed: handle 2 is owned by thread 926fb18 not current thread 9bf0448 (handles can't …
久しぶりにCatalystのマニュアル見てたら sub foo : Global { # called for /foo, /foo/1, /foo/1/2, etc. my ( $self, $c, @args ) = @_; # args are qw/1 2/ for /foo/1/2 $c->stash->{template} = 'foo.tt'; # set the template みたいな記述があって、「…
InflateColumnを使っているときに問題があったため、修正版を新しいエントリに起こしました。 修正版:DBIx::Class + Catalyst::View::JSON(2) - ヒルズで働く@robarioの技ログ 昔書いたメモが出てきたので転載。DBIC::ResultSet#findやDBIC::ResultSet#…