0

0

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

php中文网

php中文网

发布时间:2016-06-21 09:06:48

|

1407人浏览过

|

来源于php中文网

原创

架构

【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)

乐彼多用户商城系统LBMall(.net)
乐彼多用户商城系统LBMall(.net)

乐彼多用户商城系统,采用ASP.NET分层技术和AJAX技术,运营于高速稳定的微软.NET+MSSQL 2005平台;完全具备搭建超大型网络购物多用户网上商城的整体技术框架和应用层次LBMall 秉承乐彼软件优秀品质,后台人性化设计,管理窗口识别客户端分辨率自动调整,独立配置的菜单操作锁,使管理操作简单便捷。待办事项1、新订单、支付、付款、短信提醒2、每5分钟自动读取3、新事项声音提醒 店铺管理1

下载

现在来看看我们的主要东西,控制器(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的官方网站和下载源码中的示例程序,自己亲自尝试以下,也许,这个框架就是适合你的。

 



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
抖音网页版入口与视频观看指南 抖音官网视频在线访问
抖音网页版入口与视频观看指南 抖音官网视频在线访问

本专题汇总了抖音网页版的入口链接、官方登录页面以及视频观看入口,帮助用户快速访问抖音网页版,提供免登录访问方式和直接进入视频播放页面的方法,确保顺利浏览和观看抖音视频。

37

2026.02.04

学习通网页版入口与在线学习指南 学习通官网登录与使用方法
学习通网页版入口与在线学习指南 学习通官网登录与使用方法

本专题详细汇总了学习通网页版入口与登录方法,提供学习通官方网页端入口、学生登录平台、网页版使用指南等内容,帮助用户快速稳定地登录学习通官网,顺利进入学习平台,提升学习效率和体验。

7

2026.02.04

Python Web 框架 Django 深度开发
Python Web 框架 Django 深度开发

本专题系统讲解 Python Django 框架的核心功能与进阶开发技巧,包括 Django 项目结构、数据库模型与迁移、视图与模板渲染、表单与认证管理、RESTful API 开发、Django 中间件与缓存优化、部署与性能调优。通过实战案例,帮助学习者掌握 使用 Django 快速构建功能全面的 Web 应用与全栈开发能力。

7

2026.02.04

Java 流式处理与 Apache Kafka 实战
Java 流式处理与 Apache Kafka 实战

本专题专注讲解 Java 在流式数据处理与消息队列系统中的应用,系统讲解 Apache Kafka 的基础概念、生产者与消费者模型、Kafka Streams 与 KSQL 流式处理框架、实时数据分析与监控,结合实际业务场景,帮助开发者构建 高吞吐量、低延迟的实时数据流管道,实现高效的数据流转与处理。

3

2026.02.04

Golang 容器化与 Docker 实战
Golang 容器化与 Docker 实战

本专题深入讲解 Golang 应用的容器化与 Docker 部署,涵盖 Docker 基础概念、容器构建与镜像管理、Go 应用的 Dockerfile 编写、跨平台容器部署与优化、Docker Compose 和 Kubernetes 部署工具。通过实际案例,帮助学习者掌握 如何将 Golang 应用容器化并实现高效部署与管理,提升系统的可扩展性与运维效率。

3

2026.02.04

全国统一发票查询平台入口合集
全国统一发票查询平台入口合集

本专题整合了全国统一发票查询入口地址合集,阅读专题下面的文章了解更多详细入口。

59

2026.02.03

短剧入口地址汇总
短剧入口地址汇总

本专题整合了短剧app推荐平台,阅读专题下面的文章了解更多详细入口。

110

2026.02.03

植物大战僵尸版本入口地址汇总
植物大战僵尸版本入口地址汇总

本专题整合了植物大战僵尸版本入口地址汇总,前往文章中寻找想要的答案。

56

2026.02.03

c语言中/相关合集
c语言中/相关合集

本专题整合了c语言中/的用法、含义解释。阅读专题下面的文章了解更多详细内容。

10

2026.02.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 3.3万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.3万人学习

细说PHP第三季
细说PHP第三季

共58课时 | 11.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号