文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>第一章 Catalyst的简介

第一章 Catalyst的简介

时间:2007-03-04  来源:xiaoshengcaicai

使用perl进行web开发,传统的做法是写*.cgi文件,然后把这些cgi文件配到web server里面,当web server收到客户端的request时,就调用对应的cgi进行处理. 用这种方法进行web开发, cgi文件之间相对比较独立,代码里面可能含有大量的重复代码,整个系统的结构也是比较松散的, 可扩展性也不强.   Catalyst是一套用来web开发的框架,基于Catalyst开发的web系统,具有比较强的可扩展性.   第一节 搭建Catalyst开发环境   1 一般方法: 在linux系统上安装Catalyst只需要使用CPAN安装即可(推荐)   cpan -i Catalyst cpan -i Catalyst::Devel(用来运行Catalyst项目的机器不需要安装该模块,如果需要使用Catalyst进行开发则需要安装该模块)   在windows上安装可以使用ppm,但是过程比较繁琐,不建议.   2 安装脚本 Matt Trout写了一个安装脚本: http://www.shadowcatsystems.co.uk/static/cat-install 只需要从该链接下载脚本,然后 perl cat-install即可按顺序安装相关模块,可用于windows跟linux,如果用于windows的话,必须保证你的机器上有c编译器和make工具.   3 模块打包方法(推荐) Chris Laco把Catalyst相关的模块打成了一个包:http://handelframework.com/downloads/CatInABox.tar.gz 把该包下载下来不需要安装即可马上使用.可用于windows跟linux系统.     第二节 创建第一个Catalyst项目   给我们第一个项目起名为X, 那么如下使用Catalyst创建我们的项目:    

perl catalyst.pl X

如果这条命令出错了,那么可能是你的Catalyst没有安装好,请参考第一节把Catalyst装好.

键入命令后, catalyst.pl会帮你创建如下文件:

created "X"
created "X\script"
created "X\lib"
created "X\root"
created "X\root\static"
created "X\root\static\images"
created "X\t"
created "X\lib\X"
created "X\lib\X\Model"
created "X\lib\X\View"
created "X\lib\X\Controller"
created "X\x.yml"
created "X\lib\X.pm"
created "X\lib\X\Controller\Root.pm"
created "X/README"
created "X/Changes"
created "X\t/01app.t"
created "X\t/02pod.t"
created "X\t/03podcoverage.t"
created "X\root\static\images\catalyst_logo.png"
created "X\root\static\images\btn_120x50_built.png"
created "X\root\static\images\btn_120x50_built_shadow.png"
created "X\root\static\images\btn_120x50_powered.png"
created "X\root\static\images\btn_120x50_powered_shadow.png"
created "X\root\static\images\btn_88x31_built.png"
created "X\root\static\images\btn_88x31_built_shadow.png"
created "X\root\static\images\btn_88x31_powered.png"
created "X\root\static\images\btn_88x31_powered_shadow.png"
created "X\root\favicon.ico"
created "X/Makefile.PL"
created "X\script/x_cgi.pl"
created "X\script/x_fastcgi.pl"
created "X\script/x_server.pl"
created "X\script/x_test.pl"
created "X\script/x_create.pl"

我们来看一下这些目录结构以及这些文件的含义:

X/               项目文件夹
X/x.yml          项目的配置文件,Catalyst的插件ConfigLoader会使用该文件

X/t              test文件夹,放置项目的各种测试脚本        

X/script         辅助脚本文件夹,放置catalyst为项目准备的辅助脚本,开发时才会用到

X/root           root文件夹,一般放置项目的静态文件,模板文件等

X/lib            lib文件夹,放置项目的各种模块

X/lib/X.pm       以项目名字命名的应用程序类,在整个项目中起驱动作用

X/lib/View       文件夹,放置各种View模块

X/lib/Model      文件夹,放置各种Model模块

X/lib/Controller 文件夹,放置各种Controller模块

在这里,比较重要的文件夹是root 跟 lib 。

root文件夹,一般放置项目的静态文件,模板文件等

lib文件夹一进去会看到一个X.pm,它以项目名字命名的应用程序模块,它在整个项目中起驱动作用, 你会在第二章看到它的详细说明。

lib文件夹再深一层你会看到3个文件夹, Controller, Model, View, 这就是Catalyst的MVC结构。整个WEB项目的绝大多数代码都集中在3个文件夹里面.

位于View文件夹里面的View模块主要负责数据的渲染和加工,一般就是根据Controller传过来的数据生成HTML代码, 我们常用的一种View模块是Catalyst::View::TT,它的内部会使用模块TemplateToolkit(简称TT),如果你们使用过HTML::Template这样的模块就会大概理解TT在程序里面的作用.

位于Model文件夹里面的Model模块主要负责对数据源的访问, 一般就是负责数据库的读取.我们常用的Model模块是Catalyst::Model::DBIx::Class::Schema,它的内部会使用模块DBIx::Class::Schema(一般叫做DBIC).

位于Controller文件夹里面的模块称之为Controller, Controller里面有一些具有特殊属性的函数(称之为action),在Catalyst里面,一个客户端的请求一般最后会被Catalyst分派给某个Controller的某个action进行处理.所以Controller主要负责的就是处理用户的请求,控制程序的逻辑.

Controller, Model, View都属于Catalyst组件,Controller是必不可少的,而其他2种组件是可有可无的, 因为对一个客户端请求的处理不一定要访问DB,也不一定要渲染数据,当然,一般的Catalyst应用程序都具有MVC 3种组件.

在Catalyst里面除了有不同的View组件跟Model组件可供选择外, Catalyst还具有大量的插件可供使用, 可用的Catalyst插件列表参看:
http://search.cpan.org/~jrockway/Catalyst-Manual-5.700501/lib/Catalyst/Manual/Plugins.pod

 

相关阅读 更多 +
排行榜 更多 +
太空飞船终极攻击

太空飞船终极攻击

飞行射击 下载
化作星辰

化作星辰

飞行射击 下载
枪战火柴人中文版

枪战火柴人中文版

飞行射击 下载