用ThinkPHP制作简单的MVC-BLOG教程(1)
2008-08-28 21:19
393 查看
开篇词:
最近国内各框架开张的不错,ThinkPHP和FleaPHP都各有千秋,吸引很多初学者急于学习框架开发,但是又对使用框架开发摸不着头脑,一头雾水。
所以,现在,我以TP为核心,以连载的形式,首先一步一步的和大家一起做一个最简单的采用MVC三成架构的BLOG。然后再一点一点完善这个BLOG,加入更多功能,从而把众多框架初学者带入框架的殿堂,TP的殿堂。呵呵。
第一章:初识ThinkPHP
http://www.thinkphp.cn 是TP的官网,打开首页映入眼帘的是TP的一些特性。其实,用了一年多的TP,我自己总结,TP就是能够把程序员从繁复的代码编写中解救出来,让程序员更专注于业务逻辑的实现,用更少的代码量实现更多的功能。
目前,TP官网提供3个版本下载,分别为1.0.4稳定版(包含核心包和完整包),1.0.5测试版以及0.9.9测试版,0.9.9测试版主要为了兼容PHP4。
还有一种获得TP的途径,就是通过SVN下载,这也是我最推崇的一种获得方式。通过SVN下载到的是TP的最新版本,提供更多的功能和更好的性能,同时,也能在第一时间更新已知BUG,及时升级。
我们的目的是快速搭建一个MVC-BLOG,所以有关TP执行流程之类的就暂时不说,如果大家感兴趣,可以下载PDF版本和在线浏览SWF版本
创建项目的第一步,我们要有一个入口文件index.php,其实,我们对项目的所有操作,都是访问这个index.php,从而叫作入口文件,入口文件有什么作用呢,简单的说,就是根据URL给入口文件传递的参数,引导用户访问哪个ACTION,从而显示页面或者处理数据。
如果没有什么特殊设置,TP的入口文件都大同小异。
以下是一个入口文件的例子:
<?php
// 定义ThinkPHP框架路径
define('THINK_PATH', '../ThinkPHP');
//定义项目名称,如果不定义,默认为入口文件名称
define('APP_NAME', 'mvcblog');
define('APP_PATH', '.');
// 加载框架公共入口文件
require(THINK_PATH."/ThinkPHP.php");
//实例化一个网站应用实例
$App = new App();
//应用程序初始化
$App->run();
?>
注释说的很清楚了,我再补充一句,最重要的是第5行,定义了一个APP_NAME就是入口文件的名称,可以把文中的“mvcblog"换成你想要的名称,最好是无符号英文。
那我们的index.php应该放到哪呢?
================================
|---ThinkPHP TP核心文件目录
|---mvcblog 项目目录
================================
请注意,我在与TP核心文件目录的平级建立了一个test目录,没错,我们的入口文件就是要放在test目录下。需要注意的是,项目目录的文件夹名称一定要与APP_NAME定义的项目名称一致。
接下来,访问mvcblog文件夹下入口文件,你会见到一句话“^_^ Hello,欢迎使用ThinkPHP”
当你看到这句话的时候,告诉你一个好消息,所有的项目目录,TP已经自动为你布置好了,快去mvcblog文件夹下看看都有什么变化吧!
可以看到,目录下除了index.php,居然又生成了9个新的目录,这些目录都是干什么的呢?
还是那句话,我们先不管,继续我们的MVC-BLOG,当写完这个BLOG,你就一定能明白了。
好,现在来设计我们的BLOG数据库;
关于数据库设计,我是这么想的,为了以后给大家将手RBAC在TP中的应用,现在这个BLOG就先不设计用户权限管理,我们就不设计USER表了,登陆的时候直接在PHP文件里验证。等之后用RBAC的时候,就知道TP的用户权限管理是多么的简单。呵呵。
好,回归正题
由于功能是一点一点增加的,所以我们先设计最简单的几个表。
文章标题表、分类表、文章内容表,现在就先简单的这3个表。
其中文章标题表包括标题ID、标题、创建时间、标题排序。
内容表包括内容ID、对应的标题ID,内容。
分类表,我们暂时不考虑多及分类,所以,分类表仅仅包括分类ID、分类名称、分类排序。
最后,写SQL建库表
/*
MySQL Data Transfer
Source Host: localhost
Source Database: mvcblog
Target Host: localhost
Target Database: mvcblog
Date: 2008-8-28 22:09:42
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for mvcblog_cate
-- ----------------------------
CREATE TABLE `mvcblog_cate` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(64) collate utf8_bin default NULL,
`order` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for mvcblog_content
-- ----------------------------
CREATE TABLE `mvcblog_content` (
`id` int(11) NOT NULL auto_increment,
`title_id` int(11) default NULL,
`content` text collate utf8_bin,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for mvcblog_title
-- ----------------------------
CREATE TABLE `mvcblog_title` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(128) collate utf8_bin default NULL,
`createtime` int(11) default NULL,
`order` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records
-- ----------------------------
好,现在我们的数据库已经设计结束,根基已经OK,接下来,我们要用一件神兵利器,快速进行项目设置。
欲知后事如何,且听下回分解。。。-_-!
最近国内各框架开张的不错,ThinkPHP和FleaPHP都各有千秋,吸引很多初学者急于学习框架开发,但是又对使用框架开发摸不着头脑,一头雾水。
所以,现在,我以TP为核心,以连载的形式,首先一步一步的和大家一起做一个最简单的采用MVC三成架构的BLOG。然后再一点一点完善这个BLOG,加入更多功能,从而把众多框架初学者带入框架的殿堂,TP的殿堂。呵呵。
第一章:初识ThinkPHP
http://www.thinkphp.cn 是TP的官网,打开首页映入眼帘的是TP的一些特性。其实,用了一年多的TP,我自己总结,TP就是能够把程序员从繁复的代码编写中解救出来,让程序员更专注于业务逻辑的实现,用更少的代码量实现更多的功能。
目前,TP官网提供3个版本下载,分别为1.0.4稳定版(包含核心包和完整包),1.0.5测试版以及0.9.9测试版,0.9.9测试版主要为了兼容PHP4。
还有一种获得TP的途径,就是通过SVN下载,这也是我最推崇的一种获得方式。通过SVN下载到的是TP的最新版本,提供更多的功能和更好的性能,同时,也能在第一时间更新已知BUG,及时升级。
我们的目的是快速搭建一个MVC-BLOG,所以有关TP执行流程之类的就暂时不说,如果大家感兴趣,可以下载PDF版本和在线浏览SWF版本
创建项目的第一步,我们要有一个入口文件index.php,其实,我们对项目的所有操作,都是访问这个index.php,从而叫作入口文件,入口文件有什么作用呢,简单的说,就是根据URL给入口文件传递的参数,引导用户访问哪个ACTION,从而显示页面或者处理数据。
如果没有什么特殊设置,TP的入口文件都大同小异。
以下是一个入口文件的例子:
<?php
// 定义ThinkPHP框架路径
define('THINK_PATH', '../ThinkPHP');
//定义项目名称,如果不定义,默认为入口文件名称
define('APP_NAME', 'mvcblog');
define('APP_PATH', '.');
// 加载框架公共入口文件
require(THINK_PATH."/ThinkPHP.php");
//实例化一个网站应用实例
$App = new App();
//应用程序初始化
$App->run();
?>
注释说的很清楚了,我再补充一句,最重要的是第5行,定义了一个APP_NAME就是入口文件的名称,可以把文中的“mvcblog"换成你想要的名称,最好是无符号英文。
那我们的index.php应该放到哪呢?
================================
|---ThinkPHP TP核心文件目录
|---mvcblog 项目目录
================================
请注意,我在与TP核心文件目录的平级建立了一个test目录,没错,我们的入口文件就是要放在test目录下。需要注意的是,项目目录的文件夹名称一定要与APP_NAME定义的项目名称一致。
接下来,访问mvcblog文件夹下入口文件,你会见到一句话“^_^ Hello,欢迎使用ThinkPHP”
当你看到这句话的时候,告诉你一个好消息,所有的项目目录,TP已经自动为你布置好了,快去mvcblog文件夹下看看都有什么变化吧!
可以看到,目录下除了index.php,居然又生成了9个新的目录,这些目录都是干什么的呢?
还是那句话,我们先不管,继续我们的MVC-BLOG,当写完这个BLOG,你就一定能明白了。
好,现在来设计我们的BLOG数据库;
关于数据库设计,我是这么想的,为了以后给大家将手RBAC在TP中的应用,现在这个BLOG就先不设计用户权限管理,我们就不设计USER表了,登陆的时候直接在PHP文件里验证。等之后用RBAC的时候,就知道TP的用户权限管理是多么的简单。呵呵。
好,回归正题
由于功能是一点一点增加的,所以我们先设计最简单的几个表。
文章标题表、分类表、文章内容表,现在就先简单的这3个表。
其中文章标题表包括标题ID、标题、创建时间、标题排序。
内容表包括内容ID、对应的标题ID,内容。
分类表,我们暂时不考虑多及分类,所以,分类表仅仅包括分类ID、分类名称、分类排序。
最后,写SQL建库表
/*
MySQL Data Transfer
Source Host: localhost
Source Database: mvcblog
Target Host: localhost
Target Database: mvcblog
Date: 2008-8-28 22:09:42
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for mvcblog_cate
-- ----------------------------
CREATE TABLE `mvcblog_cate` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(64) collate utf8_bin default NULL,
`order` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for mvcblog_content
-- ----------------------------
CREATE TABLE `mvcblog_content` (
`id` int(11) NOT NULL auto_increment,
`title_id` int(11) default NULL,
`content` text collate utf8_bin,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Table structure for mvcblog_title
-- ----------------------------
CREATE TABLE `mvcblog_title` (
`id` int(11) NOT NULL auto_increment,
`title` varchar(128) collate utf8_bin default NULL,
`createtime` int(11) default NULL,
`order` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- ----------------------------
-- Records
-- ----------------------------
好,现在我们的数据库已经设计结束,根基已经OK,接下来,我们要用一件神兵利器,快速进行项目设置。
欲知后事如何,且听下回分解。。。-_-!
相关文章推荐
- 【设计教程】在PS里面制作简单的下雨效果!
- JAVA AJAX教程第四章—AJAX和MVC的简单结合
- nodejs基础教程-简单blog(2)-mongoose
- 大学生简单网页个人主页制作大学生网页作业html&css视频教程
- 用Python制作简单的朴素基数估计器的教程
- 最简单的github搭建blog教程
- Dem与遥感影像制作三维效果简单教程
- 19. 如何使用GameCenter制作一个简单的多人游戏教程:第二部分
- 点九图简单介绍及制作教程
- 一个简单的makefile制作教程
- 【Spring MVC】教程——简单的mvc例子
- Rufus 制作 USB 启动盘简单教程
- 简单游戏外挂制作教程
- asp.net MVC + linq to Entity简单教程(二)MVC的简单操作
- nodejs教程之制作一个简单的文章发布系统
- ROM简单制作教程
- 简单制作 OS X Yosemite 10.10 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)
- nodejs基础教程-简单blog(3)-vue
- asp.net mvc signalr简单聊天室制作过程分析
- 基于node.js制作简单爬虫教程