使用ThinkPHP创建TP5.1项目

在前面,我们安装了ThinkPHP之后,那么如何用ThinkPHP开发项目呢?

1、打开application/index/controller/Index.php,我们可以看到有如下代码。

<?php

namespace appindexcontroller;

class Index

{

public function index()

{

return’<style type=”text/css”>*{padding:0;margin:0;}div{padding:4px 48px;}a{color:#2E5CD5;cursor:pointer;text-decoration:none}a:hover{text-decoration:underline;}body{background:#fff;font-family:”Century Gothic”,”Microsoft yahei”;color:#333;font-size:18px;}h1{font-size:100px;font-weight:normal;margin-bottom:12px;}p{line-height:1.6em;font-size:42px}</style><div style=”padding:24px 48px;”><h1>:)</h1><p>ThinkPHP V5.1<br/><span style=”font-size:30px”>12载初心不改(2006-2018)-你值得信赖的PHP框架</span></p></div><script type=”text/javascript”src=”https://tajs.qq.com/stats?sId=64890268″charset=”UTF-8″></script><script type=”text/javascript”src=”https://e.topthink.com/Public/static/client.js”></script><think id=”eab4b9f840753f8e7″></think>’;

}

public function hello($name=’ThinkPHP5′)

{

return’hello,’.$name;

}

}

在上述代码中,

(1)、namespace appindexcontroller是命名空间。PHP中命名空间使用关键字namespace定义,其基本语法格式是:

namespace空间名称;

其中空间名称遵循基本标识符命名规则,以数字、字母和下划线构成,且不能以数字开头)。关于更多的命名空间,大家可以自行上网搜索。

(2)、class Index是一个类,类中有index()和hello()方法,比如index()方法中的return返回的就是我们项目首页的HTML内容。

(3)、访问index()方法,直接通过http://localhost:8010/tp5.1.36/public这个URL进行访问(localhost表示的是本地主机,8010是Apache服务器的端口号,tp5.1.36是项目名)。

(4)、如果要访问hello()方法,那么就需要通过http://localhost:8010/tp5.1.36/public/index.php/index/index/hello这个URL来访问,打开后,网页中显示“hello,ThinkPHP5”.

ThinkPHP5.1完全开放手册是这样描述的:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值…]

那么我们来看这个地址

http://localhost:8010/tp5.1.36/public/index.php/index/index/hello

其中:

index.php后面的个index表示的是模块;

index.php后面的第二个index表示的是控制器;

hello表示的是index模块下的index控制器下的hello()方法。

(5)、可以通过URL重写隐藏应用的入口文件index.php(也可以是其它的入口文件,但URL重写通常只能设置一个入口文件),下面是相关服务器的配置参考(以apache为例):

1)httpd.conf配置文件中加载了mod_rewrite.so模块

2)AllowOverride None将None改为All

3)把下面的内容保存为.htaccess文件放到应用入口文件的同级目录下

<IfModule mod_rewrite.c>

Options+FollowSymlinks-Multiviews

RewriteEngine On

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_FILENAME}!-f

RewriteRule^(.*)$index.php/$1[QSA,PT,L]

</IfModule>

2、打开MySQL服务器,创建数据库,将数据库名称命名为student。

3、在该数据库下创建一张表,表名为:student。

1.JPG

4、向student表中插入如下数据

2.JPG

上面性别的取值中,1表示的是男,2表示的是女。

5、编辑config/database.php文件,参考如下代码修改数据库的配置。

//数据库类型

‘type’=>’mysql’,

//服务器地址

‘hostname’=>’127.0.0.1’,

//数据库名

‘database’=>’student’,

//用户名

‘username’=>’root’,

//密码

‘password’=>’root’,

请根据自己的实际情况进行修改,我这里的用户名和密码都是root。

6、在Index控制器下添加student()方法,将student表查询出来,具体代码如下。

public function index()

{

$data=thinkDb::name(‘select*from`student`’);

$arr=[];

foreach($data as$v){

$arr[]=$v[‘name’];

}

return implode(‘,’,$arr);

}

通过访问localhost:8010/tp5.1.36/public/index.php/index/index/student进行测试,可以看到浏览器中显示的数据为:李四,张三,王五。

7、在实际开发中,我们会遇到各种错误,为了更好的调试错误,ThinkPHP提供了非常强大的错误报告和跟踪调试功能。打开config/app.php文件,找到如下两行代码,将值改为true。

‘app_debug’=>’true’,//应用调试模式

‘app_trace’=>’true’,//应用trace

8、在实际开发中,需要编写大量的HTML网页,为了方便编写HTML网页,我们可以单独将HTML放置在一个模板文件中。为了实现这个效果,需要让控制器中的Index类继承thinkController类,代码如下所示。

class Index extendsthinkController

9、继承thinkController类后,就可以使用这个类提供的assgin()和fetch()方法。

10、接下来修改student()方法中的代码内容,调用assgin()方法为模板赋值,再调用fetch()方法喧嚷模板,具体代码如下。

public function index()

{

$data=thinkDb:name(‘student`’)->filed(‘name’)->select();

$this->assgin(‘data’,$data);

return$this->fetch();

}

通过访问localhost:8010/tp5.1.36/public/index.php/index/index/student进行测试,会出现报错,是因为我们还没有创建该模板,根据提示可以找到该路径位于application/index/view/Index/student.html。手动创建模板文件和其所在的目录,编写代码如下:

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″>

<meta http-equiv=”X-UA-Compatible”content=”IE=edge”>

<meta name=”viewport”content=”width=device-width,initial-scale=1″>

<title>学生信息列表</title>

</head>

<body>

{foreach($data as$v)}

<div>{$v.name]}></div>

{/foreach;}

</body>

</html>

11、这样就可以在模板文件中输出所有学生的姓名。

TP5.1的个项目就这样完成了,在后续的文章中,我们再进行细讲涉及到的知识点。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/115520.html<

(0)
管理的头像管理
上一篇2025-02-18 03:14
下一篇 2025-02-18 03:15

相关推荐

  • 云服务器和云虚拟主机怎么选?云服务器和虚拟主机区别

    云服务器适合业务增长快、需弹性扩展的场景,而云虚拟主机适合预算有限、技术门槛低的小型静态网站或测试环境,二者核心区别在于资源独享性与运维复杂度,核心差异解析:从底层架构到使用体验很多人容易混淆这两者,觉得它们都是“买空间建站”,它们的底层逻辑完全不同,云服务器(ECS)就像是你租了一整栋别墅,水电网络独立,你想……

    2026-06-29
    0
  • 赣州智慧旅游招聘是真的吗?赣州旅游人才招聘信息

    中级岗位(3-5年经验)月薪范围通常在6000-10000元,这类岗位需要独立负责项目模块,如独立运营一个抖音账号,或维护一个景区小程序的功能迭代,具备成功案例的候选人议价能力较强,高级岗位(5年以上经验)月薪范围通常在10000-20000元,部分核心管理岗可达更高,这类人才需要具备战略规划能力,如制定整个景……

    2026-06-29
    0
  • 赣州智能物联网车位锁如何管理?智能车位锁管理系统多少钱

    赣州智能物联网车位锁管理的核心在于通过云端平台实现远程控锁、状态实时监控及自动计费,彻底解决传统车位“被占难管”与“找位难”的痛点,在赣州这样的城市,随着机动车保有量的持续增长,老旧小区、商业综合体以及私人固定车位的资源矛盾日益凸显,传统的机械地锁或简易遥控锁,不仅操作繁琐,更无法实现数据化管理,引入智能物联网……

    2026-06-29
    0
  • 赣州智能消防栓好用吗,智能消防栓多少钱一个

    赣州智能消防栓通过物联网技术实现实时监测与远程报警,能显著降低火灾响应时间并提升城市消防安全管理水平,是目前智慧城市建设中不可或缺的基础设施,赣州智能消防栓的核心价值与应用场景传统消防栓往往存在“看不见、摸不着、用不了”的痛点,在赣州这样地形复杂、老城区与新城区并存的区域,传统设施的管理难度极大,智能消防栓的出……

    2026-06-29
    0
  • 云服务器和物理机到底有啥区别?

    云服务器本质上是虚拟化资源池中的弹性实例,而传统物理服务器是独占的硬件实体,前者胜在弹性与运维便捷,后者强在物理隔离与性能稳定,具体选择取决于业务对成本、扩展性及安全合规的权衡,很多人初次接触服务器时,容易把“云服务器”和“传统物理服务器”混为一谈,觉得它们都是用来跑网站或存数据的盒子,这两者的底层逻辑完全不同……

    2026-06-29
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注