【fleaphp介绍】
fleaphp是国产的一个mvc框架,目前主流的框架zend framework、symfony、cakephp,国内还有fcs、plite等框架都是值得期待的。
我们看看官方的介绍:
fleaphp 为开发者轻松、快捷的创建应用程序提供帮助。fleaphp 框架简单、清晰,容易理解和学习,并且有完全中文化的文档和丰富的示例程序降低学习成本。使用 fleaphp 框架开发的应用程序能够自动适应各种运行环境,并兼容 php4 和 php5。fleaphp 的全名是 fast-lightweight-extensible-automatic php web application framework。
今天我简单的使用fleaphp来构建一个简单的留言本程序来大概了解以下fleaphp的运作机制。关于fleaphp的更多信息访问官方网站:www.fleaphp.org(电信)www.fleaphp.net (网通)。
fleaphp开发指南:http://www.fleaphp.net/index.php?q=guide
【构建留言本应用】
1. 数据表结构
留言本的要求比较简单,就是能够留言、显示留言,这么简单功能,看以下数据表结构:
--
-- 表的结构 `guestbook`
--
create table `guestbook` (
`id` int(10) not null auto_increment,
`nicker` varchar(50) not null default '',
`email` varchar(100) default null,
`url` varchar(100) default null,
`content` text not null,
`created` datetime not null default '0000-00-00 00:00:00',
primary key (`id`)
) type=myisam ;
2. 程序目录结构
整个留言本程序的结构是这样的:
/fleaphp/ ----基本框架目录
/guestbook ----留言本根目录
/guestbook/config ----配置文件目录
/guestbook/model ----模型层文件目录
/guestbook/view ----显示层文件目录
/guestbook/controller ----控制层文件目录
3. 配置文件
我先构建配置文件,用来保存数据库的基本配置信息,配置文件路径是: /guestbook/config/dsn.config.php
array(
'driver' => 'mysql',
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'test'
)
);
?>
4. 程序入口点(首页)
我们再来构建首页,就是我们所有应用的入口程序: /guestbook/index.php
大致我们看就是配置app_dir常量,然后加载基本的fleaphp框架文件和数据源配置信息,然后增加一个类搜索目录,最后执行run() 来运行整个程序。
5. 控制器(controller)
现在来看看我们的主要东西,控制器(controller): /guestbook/controller/default.php
_modelgb =& get_singleton(model_gb);
}
/**
* 缺省action
*/
function actionindex(){
$posts = $this->_modelgb->findall(null, 'created desc');
include(view/index.php);
}
/**
* 插入一条留言
*/
function actioncreate(){
$createarr = array(
'nicker' => htmlspecialchars($_post[nicker]),
'email' => htmlspecialchars($_post[email]),
'url' => htmlspecialchars($_post[url]),
'content' => nl2br(htmlspecialchars($_post[content])),
);
$this->_modelgb->create($createarr);
redirect($this->_url());
}
}
?>
我们的控制器controller_default 是个缺省的控制器,它从 flea_controller_action 类继承了所有的属性和方法用于自己的控制。controller_default 类包含三个方法,构造函数是用来初始化一个model类,actionindex() 是缺省的动作方法,它从控制器 model_gb 里把所有的留言提取出来,然后通过 view/index.php 文件来进行显示界面。actioncreate() 方法是创建一条留言的动作,就是构造好一个数据库,key是字段名,value是字段值的形式的数组,提交给 model_gb 模型来进行处理,插入到数据库当中。
6. 模型层(model)
我们再来看看模型层(model)都实现一些什么代码:/guestbook/model/gb.php
我们看,模型代码非常简单,就是一个继承了 flea_db_tabledatagateway 类的 model_gb 类,并且没有任何方法代码,只有两个属性,一个 $tablename 记录留言表的名称,$primarykey 记录表里面的主键字段。
7. 显示层(view)
最后看看你我们用户能够查看到的显示层(view)的实现html: /guestbook/view/index.php
留言本
留言本
method=post name=guestbook id=guestbook>
昵称:
邮箱:
网站:
留言列表
foreach($posts as $gb){ ?>
昵称: =$gb[nicker]?>
邮箱: =$gb[email]?>
网站: =$gb[url]?>
留言: =$gb[content]?>
} ?>
8. 实现效果图
总的结构就出来了,我们看以下运行结果的图片:
图片地址:/xrssfile/2007-1/25/200712510335349.jpg
(不知道为什么csdn不能传图片了,所以放到我百度空间里)
三、结束
更多应用请参考fleaphp的官方网站和下载源码中的示例程序,自己亲自尝试以下,也许,这个框架就是适合你的。
