使用FleaPHP框架构建简单留言本应用
作者:heiyeluren
博客:http://blog.csdn.net/heiyeshuwu
【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`
--
CREATETABLE`guestbook`(
`id`int(10)NOTNULLauto_increment,
`nicker`varchar(50)NOTNULLdefault'',
`email`varchar(100)defaultNULL,
`url`varchar(100)defaultNULL,
`content`textNOTNULL,
`created`datetimeNOTNULLdefault'0000-00-0000:00:00',
PRIMARYKEY(`id`)
)TYPE=MyISAM;
2. 程序目录结构
整个留言本程序的结构是这样的:
/Fleaphp/----基本框架目录
/Guestbook----留言本根目录
/Guestbook/Config----配置文件目录
/Guestbook/Model----模型层文件目录
/Guestbook/View----显示层文件目录
/Guestbook/Controller----控制层文件目录
3. 配置文件
我先构建配置文件,用来保存数据库的基本配置信息,配置文件路径是: /Guestbook/Config/DSN.config.php
<?php
/**
*DSN
*数据源配置文件
*/
returnarray(
'dbDSN'=>array(
'driver'=>'mysql',
'host'=>'localhost',
'login'=>'root',
'password'=>'',
'database' =>'test'
)
);
?>
4. 程序入口点(首页)
我们再来构建首页,就是我们所有应用的入口程序: /Guestbook/index.php
<?php
//======================================
//Name:Gueskbook
//Desc:firstfleaphpapplication
//======================================
//包含文件
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
<?php
/**
*缺省控制器
*/
classController_DefaultextendsFLEA_Controller_Action
{
/**
*留言本Model
*/
var$_modelGB;
/**
*构造函数
*/
functionController_Default(){
$this->_modelGB=&get_singleton("Model_GB");
}
/**
*缺省action
*/
functionactionIndex(){
$posts=$this->_modelGB->findAll(null,'createdDESC');
include("View/index.php");
}
/**
*插入一条留言
*/
functionactionCreate(){
$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
<?php
//======================
//GuestBookModel
//======================
load_class("FLEA_Db_TableDataGateway");
classModel_GBextendsFLEA_Db_TableDataGateway
{
/**
*数据表名称
*/
var$tableName='guestbook';
/**
*数据表主键
*/
var$primaryKey='id';
}
?>
我们看,模型代码非常简单,就是一个继承了 FLEA_Db_TableDataGateway 类的 Model_GB 类,并且没有任何方法代码,只有两个属性,一个 $tableName 记录留言表的名称,$primaryKey 记录表里面的主键字段。
7. 显示层(View)
最后看看你我们用户能够查看到的显示层(View)的实现HTML: /Guestbook/View/index.php
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN">
<html>
<head>
<title>留言本</title>
<metaname="keywords"content="">
<metaname="description"content="">
<linkrel="stylesheet"href="view/resource/css/gb2.css">
<style>
*{
margin:0;
padding:0;
}
body{
width:760px;
height:100%;
margin:10pxauto10px;
font-size:12px;
}
#main{
width:758px;
border:1pxsolid;
background-color:#eee;
}
#posts{
height:200px;
text-align:center;
font-size:12px;
}
#postsinput,#poststextarea{
border:1pxsolid;
}
#postsh2{
padding:10px;
text-align:center;
font-size:14px;
}
#content-list{
text-align:center;
}
#content-listh2{
margin-left:70px;
padding:10px;
text-align:left;
font-size:14px;
}
.tbl-style{
display:block;
width:600px;
background-color:#ccc;
margin-bottom:10px;
padding:05px05px;
border:1pxsolidgreen;
}
.td1-style{
width:38px;
text-align:left;
line-height:20px;
}
.td2-style{
width:100px;
text-align:left;
line-height:20px;
}
.td3-style{
width:450px;
text-align:left;
padding:10px;
}
</style>
<scriptlanguage="javascript">
functioncheckForm(){
varo=document.getElementById("guestbook");
if(o.nicker.value==''){
alert('一定要输入昵称哦。。。');
o.nicker.focus();
returnfalse;
}
if(o.content.value==''&&o.content.value.length<10){
alert('恩,留言内容总要输吧,我觉得最少不能要少于10个字,不然咋叫留言捏。。。');
o.content.focus();
returnfalse;
}
returntrue;
}
</script>
</head>
<body>
<divid="main">
<divid="posts">
<h2>留言本</h2>
<formaction="<?echo$this->_url('create');?>"method="post"name="guestbook"id="guestbook"onsubmit="returncheckForm()">
昵称:<inputtype="text"size="15"name="nicker"id="nicker"/>
邮箱:<inputtype="text"size="20"name="email"id="email"/>
网站:<inputtype="text"size="20"name="url"id="url"/><br/><br/>
<textareaname="content"id="content"rows="10"cols="80"></textarea><br/><br/>
<inputtype="submit"value="马上留言"/>
</form>
</div>
<divid="content-list">
<h2>留言列表</h2>
<?foreach($postsas$gb){?>
<tableclass="tbl-style">
<tr>
<tdclass="td1-style">昵称:</td><tdclass="td2-style"><?=$gb[nicker]?></td>
<tdclass="td1-style">邮箱:</td><tdclass="td2-style"><?=$gb[email]?></td>
<tdclass="td1-style">网站:</td><tdclass="td2-style"><?=$gb[url]?></td>
</tr>
<tr>
<tdclass="td1-style">留言:</td><tdclass="td3-style"colspan="5"><?=$gb[content]?></td>
</tr>
</table>
<?}?>
</div>
</div>
</body>
</html>
8. 实现效果图
总的结构就出来了,我们看以下运行结果的图片:
图片地址:http://hiphotos.baidu.com/heiyeshuwu/pic/item/ea685bb5e82642cf37d3ca45.jpg
(不知道为什么CSDN不能传图片了,所以放到我百度空间里)
三、结束
更多应用请参考FleaPHP的官方网站和下载源码中的示例程序,自己亲自尝试以下,也许,这个框架就是适合你的。
分享到:
相关推荐
总结来说,Fleaphp框架以其简洁高效的设计,为PHP开发者提供了一个快速构建Web应用的工具。理解并熟练运用其核心组件,如模型、视图、控制器、路由和中间件,将使你的开发工作事半功倍。随着对框架的深入学习和实践...
它的设计理念是简洁、高效和可扩展,使得开发者能够快速构建Web应用。在深入理解FleaPHP框架之前,我们首先需要了解PHP框架的基本概念。PHP框架是一种预定义的代码库,它为Web开发提供了一种结构化的方法,简化了...
- 数据访问层(Data Gateway):在MVC架构中,数据访问层封装了与数据库交互的所有细节,Fleaphp框架使用TableDataGateway类来实现这一点,支持CRUD(创建、读取、更新、删除)操作。 - 视图渲染:框架支持Smarty...
Fleaphp的核心设计理念是“简洁、实用”,为开发者提供了一套高效的开发工具集,使他们能够快速构建动态、数据库驱动的Web应用。 在“fleaphp框架附实例(最新版)”中,我们可以期待获得以下几方面的知识点: 1. **...
FleaPHP框架提供了简单的ORM(对象关系映射)机制,使得数据库操作更加直观。 视图是用户界面的部分,主要负责展示数据。FleaPHP支持模板引擎,允许您使用PHP语法编写视图文件,同时提供了一些便利的辅助函数来简化...
### FleaPHP框架学习教程知识点概述 #### 一、FleaPHP框架简介 - **特点**:FleaPHP是一款轻量级的PHP框架,旨在帮助开发者快速、轻松地创建应用程序。该框架简单易懂,拥有丰富的示例和中文文档,支持PHP4和PHP5...
一、简单留言本关于简单留言本的制作方法,请看:《[转]使用FleaPHP框架构建简单留言本应用》本文也是结合该程序来讲述的,所以非常建议读者在看此文前先动手做一遍《[转]使用FleaPHP框架构建简单留言本应用》的例子...
作为一款优秀的框架,Fleaphp旨在提供高效、简洁且易于上手的开发工具,帮助开发者快速构建Web应用。下面将详细介绍Fleaphp的主要特点、核心组件以及如何使用它进行开发。 1. **主要特点** - **轻量级**:Fleaphp...
Fleaphp是一款在中国颇受欢迎的开源PHP框架,它的核心完整代码包含了构建高效、稳定Web应用所需的各种组件和工具。这款框架的设计理念是简洁、易用且高度可扩展,为开发者提供了一种快速开发的解决方案。 Fleaphp的...
Fleaphp是一款轻量级的PHP框架,它旨在提供高效、简洁的代码结构,以帮助开发者快速构建Web应用程序。这个“fleaphp中文手册详细版”是为那些希望学习或深入了解Fleaphp的人准备的宝贵资源,特别适合初学者。下面,...
1. **轻量级框架**:Fleaphp设计的核心理念是简洁和高效,它拥有较小的体积,适合快速开发小型到中型的Web应用。这种框架的优点在于它易于学习,且不会对服务器资源造成过大的负担。 2. **MVC架构**:Fleaphp遵循...
本手册将深入探讨FleaPHP框架的核心组件和使用方法,帮助您更好地理解和应用这个框架。 FleaPHP框架的核心特点包括: 1. **模块化设计**:FleaPHP采用模块化结构,允许开发者将应用分解为独立的模块,便于管理和...
fleaphp框架,国产最好php开发框架
通过深入研究`FleaPHP核心.chm`文档,开发者可以获得更详细的框架内部机制和最佳实践,从而更好地利用FleaPHP构建高效、稳定的Web应用。该文档可能包括类库说明、API参考、示例代码等内容,是学习和开发FleaPHP的...
Fleaphp是一个基于PHP语言的轻量级开发框架,专为快速构建高效、可维护的Web应用而设计。Fleaphp的核心理念是简洁、易用和灵活,旨在提高开发者的开发效率,同时保持代码的清晰性和可扩展性。 在Fleaphp框架中,...
《大道PHP 第44章 应用FleaPHP...通过本章的学习,读者将全面了解使用FleaPHP框架构建论坛社区系统的过程,从需求分析、功能设计到数据库设计,再到实际开发环境的搭建,从而提升PHP开发技能,掌握实际项目开发的经验。
总结来说,FleaPHP提供了简单而强大的方式来构建查询条件。开发者可以根据实际需要灵活使用整数、字符串、数组来构造条件,并通过不同的参数组合实现复杂的数据查询。需要注意的是,在实际应用中,应避免直接将用户...