zoukankan      html  css  js  c++  java
  • 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

    转载请注明出处,谢谢

  • 相关阅读:
    SpringBoot部署jar与war
    Calendar代替Date常用方法小记
    Zookeeper注册中心底层实现小记
    1480. Running Sum of 1d Array
    700. Search in a Binary Search Tree
    1410. HTML Entity Parser
    1409. Queries on a Permutation With Key
    1408. String Matching in an Array
    1404. Number of Steps to Reduce a Number in Binary Representation to One
    1405. Longest Happy String
  • 原文地址:https://www.cnblogs.com/jincon/p/1761717.html
Copyright © 2011-2022 走看看