2005-12-11

我对 Catalyst 的理解和介绍

来源: 本站收集整理 作者:佚名 评论 0 条
 
这里就是引进了一个最重要的 $c, 其实你不必理会它是什么东西(其实是模块的一个实例),只需要知道项目里的所有东西你都可以从这得到。需要什么,找它就是。它又分为很多部件,包括 request, response, stash, config, forward 等。

request 包含你请求(浏览器对服务器的请求)时的所有信息。如 cookies, 参数/params 和其他头/header 信息。可以通过 my $value = $c->req->params->{'foo'}; 当你访问 http://fayland:3000/?foo=bar 时, $value 就是 bar 了。

response 就是服务器对浏览器的反馈。你对浏览器的输出等就是靠这个部件来解决。$c->res->output('Congratulations, NewApp is on Catalyst!'); 一般很少用 output, 因为输出一般用 Template 解决。

config 一般存储项目的配置文件。我一般用 YAML 来配置,然后通过 YAML::LoadFile 来导入该配置文件

forward 这个是很有用的东西。一般用来实现在子程序间的跳转。

stash 所有子程序传递到 TT 模块中的变量都是用这个变量来传递。(用过 TT 的人都应该知道的)

代码片断

package Eplanet::C::Add;

use base 'Catalyst::Base';

sub add : Global {
my ( $self, $c ) = @_;
$c->stash->{cates} = [ Eplanet::M::CDBI::Category->retrieve_all ];
}

Eplanet::M::CDBI::Category 这就是对象化后的数据库。retrieve_all 是 CDBI 的一个函数。就是获得所有数据。然后将其放到 $c->stash->{cates} 里,这样模块文件就能访问这数据了。
# add.tt 模版文件
<select name="cms_cat_id">
[% FOREACH cate IN cates -%]
<option value="[% cate.cat_id %]">[% cate.cat_name %]
[% END -%]
</select>
这样就是一个最基本的完整的过程。http://fayland:3000/add 实现 URL-Action, Eplanet::M::CDBI::Category 是数据库,然后通过 $c->stash 传递到模版里。一般的流程就是这样。

学习流程一般这样:

* 看 Catalyst::Manual::Intro
* svn co http://dev.catalyst.perl.org/repos/Catalyst/trunk 里看那文件夹里的 examples
* 订阅 http://lists.rawmode.org/mailman/listinfo/catalyst
* 写代码,做试验,问问题

Enjoy Catalyst.


共2页: 上一页 [1] 2 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:Template Toolkit 入门  
下一篇:用Perl编写读取POP3邮箱的应用程序
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号