跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

使用FleaPHP框架构建简单留言本应用

架构【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/*** DSN* 数据源配置文件*/return array('dbDSN' => array('driver'    => 'mysql','host'      => 'localhost','login'     => 'root','password'  => '','database'   => 'test'));?>4. 程序入口点(首页)我们再来构建首页,就是我们所有应用的入口程序: /Guestbook/index.php//======================================// Name:     Gueskbook// Desc:     first fleaphp application//======================================//包含文件define("APP_DIR", dirname(__FILE__));define("VIEW_DIR", APP_DIR ."/View/");require_once("../FLEA/FLEA.php");//载入DSN配置文件$dsnConfigFile = './Config/DSN.config.php';register_app_inf($dsnConfigFile);import(dirname(__FILE__));//执行run();?>大致我们看就是配置APP_DIR常量,然后加载基本的FleaPHP框架文件和数据源配置信息,然后增加一个类搜索目录,最后执行run() 来运行整个程序。5. 控制器(Controller)现在来看看我们的主要东西,控制器(Controller): /Guestbook/Controller/Default.php/*** 缺省控制器*/class Controller_Default extends FLEA_Controller_Action{/*** 留言本Model*/var $_modelGB;/*** 构造函数*/function Controller_Default(){$this->_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//======================//  GuestBook Model//======================load_class("FLEA_Db_TableDataGateway");class Model_GB extends FLEA_Db_TableDataGateway{/*** 数据表名称*/var $tableName = 'guestbook';/*** 数据表主键*/var $primaryKey = 'id';}?>我们看,模型代码非常简单,就是一个继承了 FLEA_Db_TableDataGateway 类的 Model_GB 类,并且没有任何方法代码,只有两个属性,一个 $tableName 记录留言表的名称,$primaryKey 记录表里面的主键字段。7. 显示层(View)最后看看你我们用户能够查看到的显示层(View)的实现HTML: /Guestbook/View/index.php留言本留言本昵称:邮箱:网站:留言列表foreach($posts as $gb){ ?>昵称:=$gb[nicker]?>邮箱:=$gb[email]?>网站:=$gb[url]?>留言:=$gb[content]?>} ?>8. 实现效果图总的结构就出来了,我们看以下运行结果的图片:图片地址:/XrssFile/2007-1/25/200712510335349.jpg(不知道为什么CSDN不能传图片了,所以放到我百度空间里)三、结束更多应用请参考FleaPHP的官方网站和下载源码中的示例程序,自己亲自尝试以下,也许,这个框架就是适合你的。

相关文章