使⽤ThinkPHP框架快速搭建⽹站(通俗易懂)
使⽤ThinkPHP框架快速搭建⽹站
这⼀周⼀直忙于做实验室的⽹站,基本功能算是完成了。⽐较有收获的是⼤概了解了ThinkPHP框架。写⼀些东西留作纪念吧。如果对于同样是Web⽅⾯新⼿的你有⼀丝丝帮助,那就更好了挖。
以前⽤PHP做过⼀个很蹩脚的⽹站,为什么这么说呢,因为写的全是死代码。做完以后觉得实在是累,前端要div+css,js 后端要php,,这么多东西要弄,⼗分头疼。所以,在接到做⽹站的任务后,我第⼀时间想到⼀定要使⽤开发框架去做,绝不能跟以前⼀样那么累了。
我选择的是PHP的ThinkPHP框架。说实话,真的蛮不错的。瞬间觉得Web开发还是蛮有效率的。
超级链接:
按照套路,⾸先贴⼀下实验环境:
1. WAMP(集成的那种,最Easy的⼏乎不需要配置)
2. ZendStudio7.2(中⽂⽹址,⾥⾯提供下载,在线注册机以及使⽤教程)
下载mysql为什么下载不了3. ThinkPHP框架+
4. Win7-64bit操作系统
5. 浏览器(⽕狐,IE,Chrome),外加⽕狐FireBug插件⽤于调试以及偷样式
-------------------------------------------------------------华丽分割-------------------------------------------------------------
第⼀步:⽹页模板(不会美⼯,PS,见谅。。)
前端页⾯我的是⼀个⼤学的实验室,这⾥就不贴了,很普通的那种。后台直接下载的模板,感觉蛮漂亮的,运⾏后如下图:
第⼆步:初识百度UEditor插件
由于我要做的是实验室的⽹站。实验室⽹站主要内容在如下⼏个⽅⾯:
介绍实验室的成员
实验室的项⽬,成果等
实验室的新闻以及学术交流信息
可见,信息主要偏重于后台的新闻,⽂章信息的发布,⽽前台⼏乎不存在编辑。所以重点要在后台实现⼀个⽅便的⽂章发布体系。我选⽤了百度出品的UEditor所见即所得编辑器。主要是JS实现的,整合到后台后如下所⽰,功能真的很多哇:
关于UEditor的如何整合到⽹站中,请参考UEditor的官⽹,⾥⾯有详细教程。
第三步:初识ThinkPHP框架
下⾯开始介绍ThinkPHP框架,⾸先为了加强感性认识,先看⼀看ThinkPHP⼯程的⽬录结构:
⽂件夹:
admin是后台⼯程⽂件夹
home是前台⼯程
public⾥⾯⽤于存放CSS⽂件,JS⽂件以及⽹页⾥⾯的图⽚
ThinkPHP框架
ueditor是百度编辑器
下⾯三个PHP⽂件:
admin.php是后台⼯程的⼊⼝⽂件,
index.php是前台⼯程的⼊⼝⽂件。
config.inc.php,由于这个⼩项⽬的⼏乎所有数据都放在数据库⾥,⽽前后台都要连接数据库,所以所有的数据库配置代码放在了它⾥⾯。
⽽剩下的buildpath ,.settings , .project 是Zend IDE⽣成的,不管它们。
------------------------------------------------------华丽分割-------------------------------------------------------------
由于我这⾥⾯实际是两个⼯程(home和admin),只要理解其中⼀个即可,故下⾯只介绍后台,即admin部分。
接着往下看,看⼀下admin.php⽂件,这是需要了解的第⼀个⽂件,即后台的⼊⼝⽂件。
⼏个宏定义分别指明了:
1. ThinkPHP框架的路径
2. 后台应⽤程序⽬录
3. 后台应⽤程序名称
4. 开启调试模式
5. 包含ThinkPHP框架下的ThinkPHP.php⽂件(重要!)
下⾯新建⼀个⼩⼯程来演⽰⼀下开发过程:
⽐如整个⼯程的⼤⽬录是xxx,然后把ThinkPHP框架拷贝进来,并添加admin.php⽂件(如上图中的代码)
打开admin⽬录,内容如下:
其中主要关注四个⽂件夹:
1. Conf 存放⼯程配置⽂件(⽐如定义⼀些常量什么的)
2. Lib (最重要!存放MVC模式中的模型类和控制器类)
3. Tpl(存放模板⽂件,按道理前⾯我们下载的模板应该放在这⾥)
4. Runtime(存放运⾏时⽂件,⽐如缓存啊,表缓存什么的)
最后贴出浏览器上的运⾏结果。。对不起贴的有点晚。
如果能看到上⾯的画⾯,说明ThinkPHP可以正常运⾏啦。下⾯我们继续完善吧。
------------------------------------------------------------华丽分割-----------------------------------------------------
第四步:初识MVC模式
到这⾥,不得不提⼀下在ThinkPHP中的MVC的概念。MVC很有名,叫做模型-视图-控制器模式。
在ThinkPHP⾥⾯:
模型(Model)可以认为就是⼀张数据库表。那我做的⼯程来说:
对于⼀篇⽂章(新闻),它的属性包括ID号,标题,作者,创建时间,最后修改时间以及⽂章内容。这就是⼀篇⽂章的模型。然后就按照这个思路建⽴对应的数据库表:
视图(View)可以认为就是⽤户看到的东西,即模板,或者说⽪肤。
⽐如前⾯贴出的后台模板,那个在ThinkPHP概念中就是视图。
控制器(Action)可以认为是视图与模型之前的桥梁。因为⽹站上显⽰的内容基本全部来⾃众多模型们(数据库表们),⽽控制器负责的就是决定在哪些情况下显⽰哪些模型⾥⾯的哪些数据。还是拿我的例⼦说,我后台⼯程的⾸页对应的控制器是Index 控制器。(Index控制器为所有⼯程的默认控制器)。但是你想,⼀个⽹站的⾸页⼀般是有很多按钮啊,超链接啊什么的,可以跳到其他地⽅去的东西。贴张图:
这是我的后台⾸页。可以看到左边有导航栏,右下边列出了数据库当前的⽂章信息,可以看到⼀共有三篇⽂章。⽐如我现在可能想做:
1. 把⽂章”1111测试⽂章发布系统”删除
2. 把⽂章”詹姆斯⾼捧第3座MVP奖杯”改成”詹姆斯⾼捧第4座MVP奖杯”
3. 新添加⼀篇别的⽂章
这就对应了Index控制器的不同功能了,也就是Index控制器类IndexAction的不同⽅法(⽐如取名edit()⽅法,delete()⽅法,add()⽅法)。当然之所以会看到页⾯显⽰,是因为默认情况下执⾏Index控制器的Index()⽅法,在该⽅法中调⽤display()⽅法显⽰模板(视图)。不信可以看默认的⽂件,⾥⾯的Index控制器的Index⽅法实现的就是HelloThinkPHP的欢迎页⾯。
⽐如:
IndexAction⽬录为:
/xxx/admin/Lib/Action/IndexAction.class.php
内容为:
可以看到,默认情况下在index⽅法中调⽤了$this->display()
(注意看IndexAction 继承Action类,display⽅法是Action类的⽅法);
调⽤display()⽅法后,ThinkPHP会在对应⼯程的Tpl⽂件夹下的Index⽂件下下index.html⽂件。其中前⼀个Index⽂件夹对应的是Index控制器,index.html对应的是index()⽅法。
所以,⼀个控制器类对应⼀个模板⽂件夹。具体对应多少个模板跟控制器类有多少个⽅法以及有多少个⽅法需要display有关。
故,此时对应的模板⽂件路径为:
/xxx/admin/Tpl/Index/index.html
细⼼的朋友可能要问了,你这⾥只说了视图(模板)和控制器啊,模型呢?你是怎么知道数据库⾥的那三篇⽂章的信息的呢?其实不然,我在index⽅法⾥⾯还做了⼀些事情,下图是精简版index⽅法:
可以看到,第⼀步,我就实例化了⼀个模型。模型名字是Article,前⾯说到模型就是数据库表,此时查看⼀下有哪些数据库表:
第⼀个表名字是think_article,可以看到还差⼀个前缀think_,其实这个是在配置⽂件中指定的,还记得前⽂所述的config.inc.php吗?其配置代码如下所⽰:
<?php
return array(
'DB_TYPE' =>'mysql',
'DB_HOST' =>'localhost',
'DB_NAME' =>数据库名字,
'DB_USER' =>⽤户名,
'DB_PWD' =>密码,
'DB_PORT' =>'3306',
'DB_PREFIX' =>'think_',
);
>
第⼆条语句就是查询数据库。ThinkPHP提供了很多种查询数据库的⽅法,我使⽤的是连贯操作法。
执⾏完第⼆条语句后$new_list变量就存储了所有⽂章的信息,那么怎么把它显⽰到界⾯上去呢?
看第三句话,它把该变量分配给了⼀个叫做’new_list’的变量(好像同名了哇。。不过没关系,关键是assign⽅法),然后我们在模板⽂件⾥⾯进⾏替换就OK啦。默认情况下,在HTML⾥⾯写 {$new_list}就OK啦。当然,这⾥⾯的new_list是⼀个复合的变量,不是单纯的数字或者字符串。。不过ThinkPHP提供了很多循环的⽅法给我们使⽤,很是⽅便。
最后⼀条语句就是显⽰对应的视图⽂件了。我们就能把数据库中的⽂章信息按照视图(模板)⾥⾯定义的规则显⽰在浏览器中了。
---------------------------------------------------------------华丽分割-----------------------------------------------------------
源码下载
最后给出⽰例⼯程xxx的源码。有需要的朋友可以下载,可以很快的了解ThinkPHP的⼤概原理。
源码功能:
1.后台管理员登陆
2.添加⽂章,编辑⽂章,删除⽂章
3.前台显⽰⽂章
使⽤⽅法:
1.解压到⽹站根⽬录下,默认是www⽂件夹下的xxx⽂件夹:
2.在MySQL中新建⼀个数据库,⽐如rubydb,整理成utf8-genaral-ci
3.导⼊数据库表⽂件夹下的两个数据库表 think_article和think_user,导⼊后⼊下图:
4.配置Config.inc.php⽂件
[php]
01. <span ><?php
02. return array(
03. 'DB_TYPE' => 'mysql',
04. 'DB_HOST' => 'localhost',
05. 'DB_NAME' => '⾃⼰建⼀个数据库',//需要新建⼀个数据库!名字叫
06. 'DB_USER' => '你的数据库⽤户名', //数据库⽤户名
07. 'DB_PWD' => '你的数据库密码',//数据库登录密码
08. 'DB_PORT' => '3306',
09. 'DB_PREFIX' <span > </span>=> 'think_',//数据库表名前缀
10. );
11. ?></span>
可见,上⾯的DB_NAME,DB_USER,DB_PWD需要修改
分别是
'DB_NAME'=>'rubydb' ,
'DB_USER' =>'你的mysql登录账号' ,
'DB_PWD' =>'你的mysql登录密码'
5.运⾏ localhost/xxx/admin.php,弹出后台登录页⾯:
输⼊数据库think_user⾥⾯的⽤户信息: ruby97,密码ruby97 ,再输⼊验证码即可登录。
参考:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论