欢迎访问建站网站,为您的企业量身打造网站,品质值得您信赖!

一键式智能建站网站平台

高端定制中小企业网站,智能网站建站制作

【企业网站建站费用】专业自助建站平台

作者:木子      发布时间:2021-08-06      浏览量:87506
http://博客。csdn。净/ruby97/文章/细节/7574851/使用ThinkPHP框架快速搭建网站 这周忙着做实验室网站,基本功能已经完成。比较有收获的是我大概了解了ThinkPHP框架。写点东西作为纪念。如果对刚接触 We

http://博客。csdn。净/ruby97/文章/细节/7574851/


使用ThinkPHP框架快速搭建网站

这周忙着做实验室网站,基本功能已经完成。比较有收获的是我大概了解了ThinkPHP框架。写点东西作为纪念。如果对刚接触 Web 的你有一点帮助,最好挖掘一下。

我之前用PHP做了一个很烂的网站,为什么这么说,因为代码都是死代码?。做完之后真的觉得好累。前端需要div+css,后端需要php、mysql。要做的事情太多了,很头疼。所以,接到建网站的任务后,立马想到一定要用开发框架来做,千万不能像以前一样累。

我为 PHP 选择了 ThinkPHP 框架。说实话,还不错。瞬间感觉Web开发挺高效的。

超链接:ThinkPHP中文网

按照套路,先贴出实验环境:

-------------------------------------------------- -----------华丽的分裂 ----------------------------- ------------------------

第一步:找一个网页模板(无美图,PS,见谅。)

我找的前端页面是大学实验室,这里就不贴了,很常见。后台直接下载的模板感觉还蛮漂亮的,运行后如下图:

第二步:第一时间了解百度UEditor插件


因为我想做的是实验室的网站。实验室网站主要内容如下:

可以看到信息主要集中在后台新闻和文章信息发布,前台几乎没有编辑。所以关键是在后台实现一个方便的文章发布系统。

我选择了百度出品的UEditor WYSIWYG编辑器。主要由JS实现。融入后台后如下图。真的有很多功能:

如何将UEditor集成到网站中,请参考UEditor官网,有详细教程。

第三步:初识ThinkPHP框架


先从ThinkPHP框架的介绍开始。首先,为了加强感性认识,我们先来看一下ThinkPHP项目的目录结构:


文件夹:

以下三个PHP文件:

?其余的构建路径,。设置, 。项目由 Zend IDE 生成,与它们无关。

-------------------------------------------------- ----华丽的分割-------------------------------------------- -----------------

由于我实际上有两个项目(home和admin),只要了解其中一个,我就只介绍一下背景,也就是admin部分。

再往下看,看看admin。php文件,这是第一个需要理解的文件,也就是后台的入口文件。

几个宏定义分别表示:

让我们创建一个小项目来演示开发过程:

比如整个项目的大目录是xxx,然后把ThinkPHP框架复制进去,并添加admin。php文件(如上图代码)

这时在浏览器中输入:http://localhost/xxx/admin。php会自动生成admin目录,如下图


打开admin目录,内容如下:


主要关注四个文件夹:

1。conf 存放项目配置文件(比如定义一些常量)

2。Lib(最重要的!MVC模式中存放模型类和控制器类)

3。tpl(存放模板文件,按道理,我们之前下载的模板应该放在这里)

4。运行时(存储运行时文件,比如缓存,数据库表缓存什么的)

最后把操作的结果贴在浏览器上。抱歉发帖有点晚。

如果能看到上面的画面,ThinkPHP就可以正常运行了。让我们继续改进。


-------------------------------------------------- ----------华丽的分裂-------------------------------------- ---------------

第四步:先熟悉MVC模式


说到这里不得不提一下ThinkPHP中MVC的概念。MVC非常有名,叫模型-视图-控制器模式。

在 ThinkPHP 中:

模型(Model)可以认为是一张数据库表。对于我所做的项目:

对于一篇文章(新闻),其属性包括 ID 号、标题、作者、创建时间、最后修改时间和文章内容。这是一篇文章的模型。然后按照这个思路创建对应的数据库表:

视图(View)可以认为是用户看到的,也就是模板,或者皮肤。

比如前面贴的后台模板,就是ThinkPHP概念中的视图。

控制器(Action)可以看作是视图和模型之间的桥梁。因为网站显示的内容基本上来自很多模型(数据库表),控制器负责决定哪些数据在哪些模型下在哪些条件下展示。还是拿我的例子来说,我后台项目首页对应的控制器就是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。班级。php

内容是:

可以看到,$this->display()默认在index方法中调用

(注意IndexAction继承了Action类,display方法是Action类的一个方法);

调用display()方法后,ThinkPHP会在对应项目的Tpl文件夹下的Index文件下找到index。html文件。前面的Index文件夹对应的是Index控制器,index。html 对应 index() 方法。

所以,一个控制器类对应一个模板文件夹。对应模板的数量取决于控制器类有多少方法以及需要显示多少方法。

因此,此时对应的模板文件路径为:

/xxx/admin/Tpl/Index/index。html

细心的朋友可能想问。你只谈了视图(模板)和控制器。模型呢,怎么知道数据库中三篇文章的信息其实不然,我在index方法中做了一些事情。下图是索引方法的简化版:

如您所见,在第一步中,我实例化了一个模型。型号名称是文章。前面提到,模型是一个数据库表。这时候检查一下有哪些数据库表可用:


第一个表的名字是think_article。可以看到还有前缀think_。其实这个是在配置文件中指定的。记住上面提到的配置。公司。php 配置代码如下:


return array(

'DB_TYPE'=>‘mysql’,

‘DB_HOST’?=>‘本地主机’,

‘DB_NAME’ => 数据库名称,

‘数据库用户’?=> 用户名,

‘DB_PWD’=>密码,

‘DB_PORT’?=>‘3306’,

‘DB_PREFIX’? ?=>‘想想_’,

);

?>

第二条语句是查询数据库。ThinkPHP提供了很多查询数据库的方式,我使用的是连贯的操作方式。

执行完第二条语句后,$new_list变量存储了所有文章的信息,那么如何在界面上展示

看第三句,它把变量赋值给一个叫做‘new_list’的变量? (好像名字一样。不过没关系,关键是assign方法),然后我们在模板文件中替换就OK了。默认情况下,在 HTML 中写入 {$new_list} 是可以的。当然里面的new_list是复合变量,不是简单的数字或者字符串。但是ThinkPHP提供了很多循环方法供我们使用,非常方便。

最后一个语句是显示对应的视图文件。我们可以根据视图(模板)中定义的规则在浏览器中显示数据库中的文章信息。

-------------------------------------------------- -------------华丽的分割----------------------------------- ------------------------

源码下载

最后给出示例项目xxx的源代码。有需要的朋友可以下载,可以快速了解ThinkPHP的一般原理。

源代码功能:

指示:

[php] 查看普通副本



可以看到上面的DB_NAME、DB_USER、DB_PWD需要修改

分别是?

‘DB_NAME’=>‘rubydb’,

‘数据库用户’ ?=>‘你的mysql登录账号’,

‘DB_PWD’ ?=>‘你的mysql登录密码’

在think_user数据库中输入用户信息:ruby97,密码ruby97 ?, 然后输入验证码登录。

选择写新闻按钮,自行添加文章。然后去http://localhost/xxx看结果!

源码下载链接