ゆーすけべーさんの 複数の Catalyst アプリ を複数の apache でサーブさせる .confCommentsAdd Star http://yusukebe.com/archives/09/05/26/124559.html をみました。 うちでもApache + mod_perlならだいたい同じような感じになりますね。 フロントエンドで画像、CSS、javascriptを配信して、アプリはバックエンドmod_perlになげちゃう設定です。 ただ最近mod_perl+DBICでめんどうな事がおこったりしてからApache + fastcgiでやってたりするのでその設定を書いてみる。 lighttpdはあまり好きじゃないので使ってませんです。 フロントエンド 基本的にはとばしてやるだけ。 あまり変わりない。 <VirtualHost IPアドレス> ServerName myap
Catalyst - Session管理とHTMLエンティティコード(数値文字実体参照) でも言及されているように、Catalyst::Plugin::Session::State::URI を使っていると、 <img alt="日本語" /> などが、エスケープされてしまい、表示がおかしくなったりします。 これは、HTML::TokeParser::Simple::Token::Tag::Start が悪さをしているのですが、 HTML::TokeParse::Simple::Token::Tag::Start が呼んでいる HTML::Entities::encode_entities() の第二引数を設定できれば、この問題は回避できるのですが、HTML::TokeParser::Simple::Token::Tag::Start::rewrite_tag() を redefine し
アプリケーションの枠組みを越えた再利用 前回は、Catalyst 5.7で登場したチェーンドアクションを利用して適切なベースコントローラをつくれば、CRUDのような定型処理は再利用できるようになる、という話をしました。これはコンテントマネジメントシステム(CMS)のように同じようなインタフェースを持つ画面が多いシステムをつくるときには特に効果的なのですが、その再利用を、ひとつのアプリケーション内だけで完結させてしまうのはもったいない話。自社でつくるアプリケーションにはどんどん使い回していきたいものですし、コピー&ペーストを避けるためには、なんらかの名前空間上にその共通コードをまとめていく必要があります。 もちろんそのコードが小さく、十分に一般化できるものなら、Catalyst、あるいはCatalystXという名前空間に入れてもかまいませんが、コントローラの部品だけでなく、モデルやビューまで
前の話の続き。新しい server.pl は -r オプションをつけたときに、自動的にファイルの修正を検知して再起動してくれる機能が付いてます。 いままでの server.pl だと、デーモン上で perl が永続化してるためにモジュールを書き換えてもそれが再読込されず、一度 ^C で止めてまた起動とかする必要がありました。で、それが必要なくなったと。先日 Rails を試しにいじってたんですが、Rails 付属の WEBrick なサーバーは、クラスの更新も検知してくれてスゲー便利だったので、server.pl がこの仕様になったのはすごくいいです。 どういう実装でこれを実現してるのかなーと思って見てたんですが、やっぱりそこは Catalyst、ちょっと面白い実装になってました。手元にある 5.33 からだと Catalyst::Engine::HTTP::Restarter Catal
View::TT::ForceUTF8のレビューが☆一つだったので、そこのコメントを見たらリンクされてたのです。 http://dev.catalystframework.org/wiki/tutorialsandhowtos/Using_Unicode 元のURLを見たら良い話なんですが、適当に要約すると、 Plugin use Catalyst qw/... Unicode/; TT ENCODING => 'utf8', Controller use utf8; Schema __PACKAGE__->load_components('ForceUTF8'); Model DBI の、最後の引数 mysql_enable_utf8 => 1 HTML::FormFu これ、やった覚えが無いんだけど、普通に動いてた気がする...。 'Controller::HTML::FormFu'
モダンPerlの世界へようこそ 第7回Catalyst::DispatchType::Chained:チェーンドアクションはむずかしい? 5.7系列の目玉だったチェーンドアクション 3年前に登場したCatalyst 5.7系列で導入された機能のひとつに、チェーンドアクションと呼ばれるものがあります。これは慣れると非常に便利な機能なのですが、それまでのURLとクラスの対応を根底から覆してしまう大転換だったわりにドキュメントが不足していたため、活用の仕方がわからないという声もありました。 今回はCatalyst 5.8系列で導入された新しいツールを使いながら、このチェーンドアクションの使い方を紹介していきます。スペースの都合でCatalystの基本はある程度理解しているものとして話を進めますので、わからないことがあったらCatalyst本体のドキュメントやCatalyst::Manualなどを
Catalyst 改 10 Things you Should Know, but may not. by Jay Shirley 1 1. プラグイン 2 まず、Catalystのプラグインの作成と利用についてお話します。 DON’T 3 端的なアドバイスとしては、とりあえずプラグインを使うのは控えてください。 Catalystのプラグイン機構は間違った使用方法、実装方法で定義されていることが少なくありません Pluginの 使いどころ 4 プラグインの正しい利用方法は一つしかありません:リクエストディスパッチのロジックを監視・変更する場合のみにです。これにはリクエストパラメ ターの変換、Catalystそのもののメソッド実行チェーンの変更などが含まれます ほんと、マジで 使わない方向で 5 に れているCatalyst::Plugin系のモジュールの中にはそもそもプラグインとして実装
Moosification: Catalyst 5.8に移行した際にちょっと気づいた事。 最初からMooseベースでアプリケーションを作るというのは、実務ではなかなか難しいのはわかります。一般論は JPA #02で話すのでおいておきますが(参加申し込みは今日5/12までですよ!)、5.8 からMoose化したCatalystであった問題・注意点をちょっと書き出してみます。 1. use Catalyst Catalyst::Upgradingを読んでいると package MyApp; use Moose; extends 'Catalyst'; __PACKAGE__->setup(qw/ ConfigLoader /); という表記が見られるが、これは気をつけないと駄目。 自分が直面した問題は、path_to()等を使った時に起こった。path_to() は現アプリのルートディレクトリ
3年前の大混乱 モダンPerl界を代表するウェブアプリケーションフレームワークといわれるCatalystが2006年半ばに5.6系統から5.7系統に移行したとき、創始者のゼバスティアン・リーデル氏を追い出す形で集団管理体制に移行した開発チームが最初にしたことは、プロジェクト開始当初から使われてきたCatalystという名のディストリビューションはそのままに、Catalyst-Runtimeという新しいディストリビューションをつくることでした。 このようなディストリビューション名の変更は、CPANクライアントを使っている分には(内部でモジュール名からディストリビューション名への変換が行われるので)問題にならないのですが、外部のパッケージ管理者たちには少なからぬ負担をかけました。なにしろ突然100を越す関連パッケージの依存が変更になるのです。基本的にはメタ情報だけ書き換えれば済む話とはいえ、従
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Posted in catalyst, perl Tue, 05 Sep 2006 15:07:00 GMT Whenever popular Perl sites are discussed, a number of large websites are mentioned with the usual suspects being Amazon, IMDB, LiveJournal, Slashdot and others. While this is a good list, what often doesn't get mentioned is the new Web 2.0 sites that Perl 5 is powering. Perl 5 web frameworks (such as Catalyst and Jifty), OO models (Moose) and
=head1 NAME Niget - ニコニコ動画のflvをゲットしよう =head1 What's this ニコニコ動画の任意の動画のURLを入力すると、ニコニコ動画のAPIより、動画本体(flv、swf)の URLを取得し、それをひたすら記録し続けます。 ニコニコ動画のAPIを叩く部分は、小飼 弾さん作のスクリプトを参考にさせて頂きました。 http://blog.livedoor.jp/dankogai/archives/50900305.html =head1 テストの実行の仕方 prove -It/lib -vl =head1 style 「モダンPerl入門」とPixisを参考にして、Catalystからモデル分離をしたつもりです =head1 DB localhostのMySQLにrootでパスワード無しで繋ぐ設定になってます 以下のファイルにコネクション情報を書いてます
Catalyst - 簡単なアプリケーションの開発 April 30, 2006 Posted by butcher in : Perl , trackback PerlのMVCフレームワークCatalystについて紹介します。 Catalystについてはこちらを参照ください。 今回は、インストールから、簡単なDBアプリケーションの開発、mod_perl上での実行の手順を紹介します。 開発環境は、FedoraCore4, perl v5.8.6, Apache 2.0.55, mod_perl 2.0.2, mysq l 4.1.18 です。 まずはインストール。 インストールは非常に簡単で、”Task::Catalyst”モジュールを入れるだけです。(依存関係のある他のモジュールもインストールされます。) $ perl -MCPAN -e 'install Task::Cat
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
すっごい久しぶりにやった件。 FastCgiExternalServer /home/zigorou/myapp/MyApp/script/myapp_fastcgi.pl -socket /tmp/myapp.socket <VirtualHost *:80> ServerName myapp.local DocumentRoot /home/zigorou/myapp/MyApp/root Alias /static /home/zigorou/myapp/MyApp/root/static AliasMatch ^/([^./]+\.[^./]+)$ /home/zigorou/myapp/MyApp/root/$1 ScriptAlias / /home/zigorou/myapp/MyApp/script/myapp_fastcgi.pl ErrorLog /var/log/ht
package FCGI::ProcManager::Debug; use strict; use warnings; use base qw/FCGI::ProcManager/; sub pm_manage { my $res = shift->SUPER::pm_manage(@_); # manager does not return pm_manage, so below code should run in server only $0 = 'perl-fcgi (waiting)'; $res; } sub pm_pre_dispatch { $0 = sprintf('perl-fcgi (started %s)', scalar localtime); shift->SUPER::pm_pre_dispatch(@_); } sub pm_post_dispatch {
ネタです。というか、手元で grep ると出てくるコードなんだけどもw # 一応補足しておくと、CatalystではCatalyst::Controller::Resorucesを使う事で、Chainedカオスを避ける事はできます。 Resources の chain に絡むことによってますますカオスな感じにはできますw sub protect : Resource : Args(0) : Chained('member') : Method('POST') : PathPart('protect') { なんでこう書いちゃったのかは不明。同じ事は次のように書いてできる。 __PACKAGE__->config( member => { protect => 'POST' } ); sub protect { my ($self, $c, $id) = @_; }
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く