perl Mojolicious:6

2015.01.22 Thursday 07:31
0
    # コマンド実態
    sub run {
    # コマンドライン引数は@argsに格納されます
    my ($self, @args) = @_;

    # コマンドライン引数をパースします
    GetOptionsFromArray(¥@args, 'd|debug' => ¥(my $debug))
    or die $self->usage;




    Perlでフレームワークを使用するときはMojoliciousを使用することにしています。
    とはいってもあまりちゃんと使ったことがないので、悩む点がちょこちょこありました。
    Mojoliciousドキュメント 日本語訳をただ読んでみても理解が進まないので、とりあえず書いてみて確かめながら勉強中です。
    何がわからなかったのか?

    URLが多階層になった場合の記述がよくわかりませんでした。
    たとえば、
    http://localhost/test/
    とかの場合だと、
    Test.pm

    $r->get('/test')->to('test#test');

    で問題なく動きますし、
    Test.pm

    $r->get('/test/lowpage')->to('lowpage#test');

    でも動くのですが、lib内のアプリ本体直下のファイル数がやたら増えるので嫌だし、何でもかんでもプレースホルダー使って取得してしまうのも間違っていると思うし、ぐちゃぐちゃして嫌なのでした。
    もっと具体的に言えば、
    $r->get('/hoge') を Test::Hoge->hoge()
    $r->get('/hoge/piyo') を Test::Hoge->piyo()
    にしたい、って感じです。
    調べても全然出てこなくて。というか、文書を読んでも理解できなかっただけなんですけれど。
    結論

    試行錯誤の過程を書いても仕方がないので、結果を。

    $r->get('/foo')->to('foo#foo');
    $r->get('/foo/bar')->to('foo-bar#bar');
    $r->get('/baz/qux')->to('baz-qux_quux#foo_bar');

    と記述した場合、呼び出されるファイルは以下でした。

    $r->get('/foo')->to('foo#foo');
    コントローラ:lib/MyAPP/Foo.pm の sub foo
    テンプレート:template/foo/foo.html.ep

    $r->get('/foo/bar')->to('foo-bar#bar');
    コントローラ:lib/MyAPP/Foo/Bar.pm の sub bar
    テンプレート:template/foo/bar/bar.html.ep

    $r->get('/baz/qux')->to('baz-qux_quux#foo_bar');
    コントローラ:lib/MyAPP/Baz/QuxQuux.pm の sub foo_bar
    テンプレート:template/baz/qux_quux/foo_bar.html.ep


    category:perl | by:ittoocomments(0)trackbacks(0) | -

    スポンサーサイト

    2019.09.17 Tuesday 07:31
    0
      category:- | by:スポンサードリンク | - | - | -
      Comment








         
      Trackback
      この記事のトラックバックURL

      ad
      Calender
        12345
      6789101112
      13141516171819
      20212223242526
      2728293031  
      << October 2019 >>
      Selected entry
      PR
      Category
      Archives
      Recent comment
      • パス指定 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated ¥xXX escape
        久米隆文
      • 円マークが自動変換されてる
        aaaaaa
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        66hills
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        ssd
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        max
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        DOM
      • コンピュータ業界の根本的な変化
        cloud
      • コンピュータ業界の根本的な変化
        Dellの仮想化
      • マクドナルドでYahoo BBモバイルポイント 公衆無線LANサービスがつながらない
        えちごや
      Recent trackback
      • スマートフォンの法人活用例
        無線LANネットのブログ
      • Yahoo!オークションからのアフィリエイト収入が一気に70%減になってしまい涙目になってる話
        特選情報
      Recommend
      Link
      Profile
      Search
      Others
      Mobile
      qrcode
      Powered
      無料ブログ作成サービス JUGEM