タグ

Catalystに関するzetfsのブックマーク (12)

  • DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記

    既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる $ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]' やりかた。 まず、クラスを作りたいディレクトリ付近に移動 さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定 make_schema_at の第一引数に生成する Schema のパッケージ名を指定 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合

    DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成 - IT戦記
  • 第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp

    3年前の大混乱 モダンPerl界を代表するウェブアプリケーションフレームワークといわれるCatalystが2006年半ばに5.6系統から5.7系統に移行したとき、創始者のゼバスティアン・リーデル氏を追い出す形で集団管理体制に移行した開発チームが最初にしたことは、プロジェクト開始当初から使われてきたCatalystという名のディストリビューションはそのままに、Catalyst-Runtimeという新しいディストリビューションをつくることでした。 このようなディストリビューション名の変更は、CPANクライアントを使っている分には(内部でモジュール名からディストリビューション名への変換が行われるので)問題にならないのですが、外部のパッケージ管理者たちには少なからぬ負担をかけました。なにしろ突然100を越す関連パッケージの依存が変更になるのです。基的にはメタ情報だけ書き換えれば済む話とはいえ、従

    第6回 Catalyst::Upgrading:検証はお早めに | gihyo.jp
  • Catalystで知ったこと - Perl日記

    PerlフレームワークCatalyst完全入門 作者: 山田祥寛出版社/メーカー: インプレスジャパン発売日: 2010/05/20メディア: 単行(ソフトカバー)購入: 8人 クリック: 214回この商品を含むブログ (18件) を見る 買って読み始めたので、知ったことメモ。 フォームデータの取得 今まで。 my $id = $c->req->param('id'); ただしこれだと、 しかし、paramメソッドはクエリ情報→ポストデータの順で値の取得を試みます。このため、クエリ情報/ポストデータの間で同名のパラメータがあった場合、意図しないデータを取得してしまう恐れがあるのです。 (P76) なるほど。 これを避けるために、とても丁寧に記述するなら、こう。 # POST データ my $id = $c->req->body_params->{'id'}; # GET データ my $

    Catalystで知ったこと - Perl日記
  • 10分(?)で出来るDBIx::Class の導入|プログラムメモ

    ■1. DBIx::Classのインストール 例によってCPANコマンドでインストールします。 unixのシェルから perl -MCPAN -e shell cpan > install DBIx::Class cpan > install DBIx::Class::Schema::Loader でOK。 (何か入力が促されたらそのままEnterを押せばいいです) ■ 2.テーブルスキーマの自動生成 unixのシェルでプログラムを作成するディレクトリに移ってから perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","pa

    zetfs
    zetfs 2011/06/29
    1対多リレーション
  • TemplateToolkitをより早く!!・・・できなかったorz - マツモブログ

    ティーティーのさぁーディスクアイオー減らしたら早くなるんじゃね? と言った事を思い立ちやっては見たものの、ごめんなさい、見くびってました、出直して来ます。 というお話を晒させていただきます。 まず、何かと言いマスト TemplateToolkitのオプションでCOMPILE_DIRというのが有ります。これは強力でTTの文法で書いたテンプレートをperlのコードに書き下してくれるというやつです。よって一回コンパイルしてくれると次回からはパースせずとの良い!速い!という訳であります。 ↓このへん参照。 http://search.cpan.org/~abw/Template-Toolkit-2.19/lib/Template/Document.pm で、コンパイルされた結果がCOMPILE_DIRで指定したパスに溜まってゆくと。 例えば Template->new(ABSOLUTE => 1,

    TemplateToolkitをより早く!!・・・できなかったorz - マツモブログ
    zetfs
    zetfs 2011/06/21
    COMPILE_DIR CACHE_SIZE
  • forwardとdetachとvisitとgo - Perl日記

    まだまだCatalyst。 Controllerクラスで、$c->forward()と$c->detach()は、制御が帰ってくるかどうか(返ってくるかどうか)の違いだと覚えていた。 まあそれはあっているんだけれど、他にも違いがあった。 Controller/Login.pm sub index :Path :Args(0) { my ( $self, $c ) = @_; $c->forward('/login/form'); # or # $c->detach('/login/form'); } sub form :Local { my ( $self, $c ) = @_; $c->stash->{message} = 'ok!'; } root/login/form.tt <html>[% message %]</html> この状態で「/login/」にアクセスすると、以下のエラ

    forwardとdetachとvisitとgo - Perl日記
    zetfs
    zetfs 2011/06/13
    forward
  • catalyst [paulownia.jp]

    以下のはろーわーるどセットアップ手順はCatalyst知識ゼロの状態の人間が実際に動かしながら書いているため、間違いが多数あるかもしれません。注意してください。 OSはCentOS5。GCCが入ってなければ場合は先に入れておけ。あとmysqlも # yum intall gcc # yum intall gcc-c++ # yum install mysql # yum install mysql-server mysql-serverと同時にインストールされるBD::mysqlはバージョンが多少古いが、Catalystをインストールするときに上書きされるので気にしない。 このサイトからcat-installスクリプトを拾って実行。CPANでCatalyst::Develをインストール。 # perl cat-install # perl -MCPAN -e 'install Cataly

  • Catalyst::Plugin::I18Nで国際化 with Template-Toolkit(Catalyst::View::TT) - ヒルズで働く@robarioの技ログ

    前回のCatalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログはCatalyst::Plugin::I18Nでできるよとのコメントをいただきましたので、それでやることにしました。 Catalyst::Plugin::I18Nで国際化 lib/MyApp/L10Nではなく lib/MyApp/I18N を用意します。 lib/MyApp/I18N/en.pm package MyApp::I18N::en; use base qw(MyApp::I18N); our %Lexicon = ( '_AUTO' => 1, ); lib/MyApp/I18N/ja.pm package MyApp::I18::ja; use base qw(MyApp::I18N); our %Lexicon = ( '_AUT

    Catalyst::Plugin::I18Nで国際化 with Template-Toolkit(Catalyst::View::TT) - ヒルズで働く@robarioの技ログ
    zetfs
    zetfs 2011/02/07
    英語版・日本語版切り替え
  • Catalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログ

    はてぶコメントより、typesterさん曰くCatalyst::Plugin::I18N - I18N for Catalyst - metacpan.orgでできるよとのこと。お〜。名前は昔見たことがあったのですが中身まで見てませんでした。今回の話(と次に書こうと思っていた話)のほとんどがCatalyst::Plugin::I18Nに含まれていますね。Template周りをちょこっといじるだけで良さそうです。コメント当にありがとうございました。助かります。 このエントリは「Locale::Maketextの使い方」ということでお願いします。 はじめに 同じ内容のページを、ユーザの環境に応じて英語版と日語版を切り替えたい。という話です。 よくある「使用するテンプレートを言語毎に用意する」という方法では、英語版テンプレートと日語版テンプレートの同期を取るのが非常に面倒になります。そこで

    Catalyst+Template-Toolkit(Catalyst::View::TT)で国際化 - ヒルズで働く@robarioの技ログ
    zetfs
    zetfs 2011/02/04
    英語版・日本語版切り替え
  • CatalystでURL最適化 - 考え得る最高を常に行う

    Catalyst::DispatchType::Chainedを使うとスッキリしたURLで組める。 似たような事はRegexやLocalRegexでも出来るけどこっちの方が重複するようなコードが軽減できる。 Chained属性に指定したPrivate Names(コントローラーのメソッド名)を使って処理をつなげる事ができる。 例えば以下のURLを処理するとき、処理はこうなる。 http://example.com/users/1/books/2 /users/1は共通してユーザの検索 その後に続くbooks/2はそのユーザのIDが2のを表示 基 では早速、以下の様なURL群を設計 /add /* /*/edit /*/entries/* /*/entries/*/delete CatalystのControllerの実装はこんな風になる。 # [CAPTURE] / sub root_

    CatalystでURL最適化 - 考え得る最高を常に行う
  • Catalyst でセッション管理を行うときのTips? | ブログが続かないわけ

    エントリーには間違いが含まれているので注意してください。 Catalystでセッション管理を行うときは下記のページを参考にしてみてください。 [Perl][Catalyst]ユーザ認証とセッション管理のサンプル [Catalyst] Authentication メモ Catalyst で Authentication Catalystでのセッション管理はどれがいいのだろう 今回は、すでにセッション管理を行っている方を対象に、ちょっとしたカスタマイズをご紹介します。 以下のやり方は間違っています。 正常に動作しませんでした。 Catalyst::Plugin::Session::State::Cookie を使ってcookieにセッションを保存するようにしている人は多いと思います。 例えば、cookie の有効期限をブラウザ終了時までとした場合、設定はこんな感じになると思います。sess

    Catalyst でセッション管理を行うときのTips? | ブログが続かないわけ
  • CatalystでDBICを使っていてSELECT時にテーブルを結合(JOIN)する | ブログが続かないわけ

    前回の間違いを修正しました。 今回はCatalystでDBICを使う際、searchでjoinを実現する方法を説明します。 例アプリケーション名はMyApp。 ユーザー情報を格納しているUser というテーブルがあり、そこには都道府県がコードで格納されている。 都道府県はPref といテーブルにコード(pref_id)と都道府県名(pref_name)が1対1で対応している。 まず、model は下記のヘルパースクリプトで機械的に作っていますよ ね...?script/myapp_create.pl model DBIC DBIC DBI:mysql:mydb user passこれ(Catalyst::Model::DBIC)はあまり推奨されていないようですので、Catalyst::Model::DBIC::Schema を使うようにしましょう。script/myapp_create.p

    CatalystでDBICを使っていてSELECT時にテーブルを結合(JOIN)する | ブログが続かないわけ
  • 1