文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Catalyst::Manual::Tutorial::02_CatalystBasics

Catalyst::Manual::Tutorial::02_CatalystBasics

时间:2010-08-18  来源:horsley

Catalyst::Manual::Tutorial::02_CatalystBasics 学习笔记 (2010-08-18 星期三)   文章来源: http://search.cpan.org/~hkclark/Catalyst-Manual-5.8004/lib/Catalyst/Manual/Tutorial/02_CatalystBasics.pod   例子程序: svn co http://dev.catalyst.perl.org/repos/Catalyst/trunk/examples/Tutorial/ CatalystTutorial   安装:cpan Task::Catalyst::Tutorial 一、 创建 app,运行: $ catalyst.pl Hello $ script/hello_server.pl -r    二、
 

sub index :Path :Args(0) {
    my ( $self, $c ) = @_;                  
    # Hello World     

    $c->response->body( $c->welcome_message );
}

在 Catalyst 的新版本中,default index 不建议使用 :Private 。

:Path 表示匹配所有 url ,因为 Path 后面没有跟任何路径。

:Args(0) 表示只接受不带任何参数的 url 。

三、添加 action 

sub hello :Global {
    my ( $self, $c ) = @_;    
    $c->response->body("Hello, World!");
}

    
    [debug] Loaded Path actions:
    .-------------------------------------+--------------------------------------.
    | Path                                | Private                              |
    +-------------------------------------+--------------------------------------+
    | /                                   | /index                               |
    | /                                   | /default                             |
    | /hello                              | /hello                               |
    '-------------------------------------+--------------------------------------'
    ...
 

四、 创建 view

$ script/hello_create.pl view TT TT

查看文件: lib/Hello/View/TT.pm ,你会发现仅仅做了些配置,将扩展设置为 .tt。

学习 TT 的完整用法可以参考: http://template-toolkit.org/,我们这里只学简单的。

1、创建 root/hello.tt 文件,内容如下,这里 template.name 表示 hello.tt ,

你可以根据需要写入 perl 变量:

<p>
    This is a TT view template, called '[% template.name %]'.
</p>


2、修改 lib/Hello/Controller/Root.pm  如下:

sub hello :Global {
    my ( $self, $c ) = @_;    
    $c->stash(template => 'hello.tt');
}

stash 的不同写法,全部有效(上面的写法流行):

  • $c->stash->{template} = 'hello.tt';
  • $c->stash(template => 'hello.tt', foo => 'bar',
                  another_thing => 1);
  • $c->stash({template => 'hello.tt', foo => 'bar',
                  another_thing => 1});

五、

1、$ script/hello_create.pl controller Site

查看文件:lib/Hello/Controller/Site.pm

sub test :Local {
    my ( $self, $c ) = @_;

    $c->stash(username => 'John',
              template => 'site/test.tt');
}


Local 指明该 action 响应 url:  "controller/method",这里是site/test;

关于action 的更多知识: http://search.cpan.org/~hkclark/Catalyst-Manual-5.8004/lib/Catalyst/Manual/Intro.pod#Actions

2、

这里我们其实不用指定 template , TT 会自动匹配 "controller/method.tt" 模板。

编辑:root/site/test.tt,内容如下:

<p>Hello, [% username %]!</p>


 

 

本章结束

相关阅读 更多 +
排行榜 更多 +
翌日波奇狗的历险记手机版下载

翌日波奇狗的历险记手机版下载

休闲益智 下载
怪兽远征安卓版下载

怪兽远征安卓版下载

角色扮演 下载
谷歌卫星地图免费版下载

谷歌卫星地图免费版下载

生活实用 下载