SpeedPHP学习教程第三篇——实战留言本之数据库设计及前奏(原创连载四)

本章让我们使用sp框架制作一个简单的留言本程序(为什么选择这个,主要是他最简单,同时也可以体现speedphp功能,个人觉得简单才是美,也能更快的理解~),
利用实例学习程序开发是非常有效的。同时,我们也可以体会一下实际网络项目的开发流程。
  留言本例子下载,将会在以后提供给大家下载~

首先我们来看看,留言本的需求,也就是我们的程序将要实现什么功能:

   1. 访问者可以查看留言首页(也就是留言列表,利用speedphp自带的进行分页)。
   2. 访问者可以查看单一条留言的详细内容。
   3. 访问者可以进行留言。
   4.可以对留言的内容进行编辑和删除(暂时没有涉及权限问题)
   5.可以回复留言
   6.生成html静态文件
   直接贴图了
(留言板我们主要是学习,我没有做美化,大家将就着看吧~~,重要的是大家可以学到东西)
   此图请见安徽php社区:http://bbs.hfphp.org/thread-36-1-1.html  复制好麻烦的,哎。。

 

看截图大家可以看到,我们需要三个字段,一个留言者的名字,留言的标题,留言的内容,
同时,http://bbs.hfphp.org/每个留言有一个留言ID,此外,回复与留言字段都是放在一张表里面的,所以,我们需要一个区分标志字段,
综上,我们主要需要五个字段就够了,数据库设计如下~

代码
CREATE TABLE `guestbook` (
  `id` 
int(11NOT NULL AUTO_INCREMENT,
  `title` 
varchar(50) ,
  `contents` 
varchar(200) ,
  `name` 
varchar(20) ,
  `fid` 
int(6),
  
PRIMARY KEY (`id`),
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

 

其中,fid为父id,是用来区分回复还是留言的,如果该条记录是的fid为0,则为普通的留言,否则,该记录为回复,fid记录着该回复的留言ID.

数据库建立好了,
至于首页的配置文件,在上一章中已经讲过了,这里就不再重复了,大家自己熟悉下配置文件啊,不要偷懒啊~
http://bbs.hfphp.org/
这里还要说明下,在实际的应用过程中建议大家把配置文件和首页文件分开,比如,我们往往会在根目录下面建立的一个config.php的文件代码如下:

 

 

代码
        <?php
        
return array(
                
// 数据库
                'db'=>array(
                        
'host' => 'localhost',
                        
'login' => 'root',
                        
'password' => 'jincon',
                        
'database' => 'sp_company',
                        
'prefix'=>'qy_'
                )
,
                
//开启smarty
                'view' =>array(
                        
'enabled'=>TRUE,
                        
'config' =>array(
                                
'template_dir' => APP_PATH.'/template',
                                
'complie_dir' => APP_PATH.'/tmp',
                                
'cache_dir' =>APP_PATH.'/tmp',
                                
'left_delimiter' =>'<{',
                                
'right_delimiter' =>'}>',
                        )
,
                )
,
                
//开启静态化
                'html'=>array(
                        
'enabled'=>TRUE,
                )
,
        );

?>

 

 

在首页index.php文件里,我们可以进行加载配置文件,代码如下:

<?php
        header("Content-Type:text/html;charset=utf-8");
        define("SP_PATH",dirname(__FILE__)."/SpeedPHP");
        define("APP_PATH",dirname(__FILE__));
        @date_default_timezone_set('PRC');
        $spConfig = require(APP_PATH."/config.php");
        require SP_PATH.'/SpeedPHP.php';
?>

 

但是,这里,我们依旧使用上一章讲的配置文件,只是告诉大家要学会灵活运用。

根据我们的设计要求,需要一个控制器,我们这里使用默认的控制器main,那么我们要在controller建立的main.php文件,同时,我们需要几个基本的动作(action)  

 

 

<?php
class main extends spController
{
function index(){ // 这里是首页

}

function show(){ // 这里是查看留言内容

}

function write(){ // 这里是留言

}
}

 

 

控制器的框架建立好了,那么下面,我们开始编写模型层(model):

我们还要建立一个guestbook.php放到model目录里面,那是链接数据库所要做的。guestbook.php的代码很简单:

<?php
class guestbook extends spModel
{
  var $pk = "id"; // 每个留言唯一的标志,可以称为主键
  var $table = "guestbook"; // 数据表的名称
}

 

请注意,全部PHP文件都需要是UTF8编码,数据库也需要UTF8的,要统一下,不然可能会出现乱码的。

这里的需要注意的:所有模型必须要继承自spModel,这是speedphp框架的主要核心类。
http://bbs.hfphp.org/

同时还有要注意的是,一个框架都会有自己开发的规范,如果你需要使用这个框架,那么你必须要遵守这个框架的规范,当然现在的框架有很多,也有很多相似的地方,这是因为,框架的开发者往往都习惯遵守一些大家约定成俗的东西,这样的好处自然不言而明,只要有相关框架使用经验的开发人员就可以非常快的使用框架,所以,大家学完speedphp之后就可以快速的学习其他是框架。

大家知道,既然是框架,那么他就会有自己的规范,speedphp的框架要模型里面的类名要和文件名相同,否则会出错,speedphp会爆:路由错误,请检查是否存在该函数
比如,class guestbook,他的文件名是guestbook.php,还有就是数据库的表名最好也要同名,以后会很方便滴~,而且也比较符合开发规范和有利于养成好的习惯。


下面的教程,我们将开始完善里面的功能,有问题大家及时更贴。。。。。

原创:安徽php社区: http://bbs.hfphp.org/thread-36-1-1.html

转载请注明出处,谢谢

posted @ 2010-06-21 09:40  小寒子  阅读(710)  评论(0编辑  收藏  举报