Catalyst 学习 - Chapter 4
扩展一个应用
(2010-08-17 星期二)
一、配置文件
添加配置文件,便于最终用户使用,同时可以方便地调整参数。
配置文件位于 MyApp 根目录下,缺省名字为 MyApp.conf。这里我的配置文件是 Test/Test.conf。
1、你可以修改为 .yml 文件,就可以使用 yaml 格式,如果不喜欢,也可改为其他格式。
最简单的 yaml 格式是个键值对,如: foo: bar
使用方式: print "Foo is: ". $c->config->{foo};
较为复杂的,这里 foo 属于 Model MyDatabase:
Model::MyDatabase:
foo: bar
使用方式(在 Model MyDatabase 内部访问):
$my_foo = $self->{foo};
建议创建一个 accessor,可以避免输入错误,导致程序中断,如下:
package MyApp::Model::MyDatabase; use base 'Catalyst::Model';
## 以下这一句创建 accessor __PACKAGE__->mk_ro_accessors('foo'); sub show_foo { my $self = shift; print "foo is equal to ". $self->foo; } |
2、直接设置变量,编辑主文件 Test/lib/Test.pm
package MyApp; use Catalyst qw(...); # ... __PACKAGE__->config->{Model::MyDatabase} = { foo => 'bar' }; # ... __PACKAGE__->setup; 1; |
二、配置数据库连接。
编辑 Test/test.yml,写入如下信息:
Model::TestDB: connect_info: - DBI:SQLite:__HOME__/database |
以上信息是使用的 sqlite 数据库,使用 mysql 如下修改:
Model::TestDB: connect_info: - DBI:mysql:address_database - username - password |
三、使用 session
安装模块:
Catalyst::Plugin::Session
Catalyst::Plugin::Session::State::Cookie
Catalyst::Plugin::Session::Store::FastMmap
Catalyst::Plugin::Session::Store::File
Catalyst 的 session 由三部分组成(开启,存储,读取 session):
Catalyst::Plugin::Session -- 提供基本函数功能
Catalyst::Plugin::Session::State::Cookie -- 使用 cookie 存取数据
Catalyst::Plugin::Session::State::URI -- 通过 URI 传递参数,丑陋且不安全
Catalyst::Plugin::Session::Store::FastMmap -- 使用内存存取数据,windows 上不可用
Catalyst::Plugin::Session::Store::File -- windows 上可用
主文件 Test/lib/Test.pm 中进行如下修改:
use Catalyst qw/ConfigLoader Static::Simple
Session Session::State::Cookie Session::Store::FastMmap/;
程序中多出以下 object 可用:$c->session 和 $c->flash.
阅读(891) | 评论(0) | 转发(2) |