手机版

ThinkPHP5的简单搭建和使用详解

时间:2021-08-28 来源:互联网 编辑:宝哥软件园 浏览:

0X01 Thinkphp的安装

我这里选择的是使用窗子下的设计者进行安装,收下首先下载设计者这个工具,安装完成以后进入我们想要创建项目的文件夹输入下面的命令

作曲家创作-项目顶层思考/思考tp5开发-主-首选-dist这样就会在当前目录下形成一个名为tp5的文件夹,这个文件夹中存放的就是thinkphp5的基本的框架

0X02重点目录结构及文件介绍

1.目录结构

应用程序:应用目录,我们的模型视图控制器都会放在这个文件夹下,这是我们开发的主阵地

公共:这个是我们项目的入口文件,thinkphp是一个单一入口的框架

thinkphp :框架的核心目录

2.关键文件

应用程序/config.php项目配置文件,开启调试调试模式(在开发中)

应用程序/数据库。服务器端编程语言(Professional Hypertext Preprocessor的缩写)数据库配置文件

public/index.php项目入口文件,定义了应用目录的位置以及包含框架启动文件来启动框架

0X03配置虚拟主机

1.httpd.conf中判断下面是否被注释,如果被注释请取消注释

(1)包含conf/vhosts。conf(2)加载模块vhost _ alias _ modules/mod _ vhost _ alias。因此

2.删除vhost.conf中原有的默认内容,添加如下内容

虚拟主机* :80文档根目录' e : \ PHP研究\ PHP主题\ WWW \ tp5 \ public ' ServerName localhost目录' e : \ PHP研究\ PHP主题\ WWW \ tp5 \ public '选项遵循符号链接ExecCGI AllowOverride All Order Allow,deny Allow from All request All allowed/Directory/virtual host 3 .配置统一资源定位器重写

http.conf中解开下面的注释

加载模块重写_ modules/mod _重写。因此并在虚拟主机配置中写上

允许所有指令注意:如果使用简体中文版的话,官方默认的。文件是不可以的,需要修改成下面这个样子

if模块mod _重写。重写条件% { REQUEST _ FILENAME }上的c重写引擎!-d重写条件% { REQUEST _ FILENAME }!^(.重写器*)$ index.php[L,E=PATH _ info : $ 1]/if模块0x 04基本的写法

1.控制器的基本写法

(1)模块中的控制器实际上就是一个一个的类,这个类写的时候要继承控制器并且要在前面写上命名空间

(2) thinkPHP5使用返回来返回一个html,自动渲染到页面上

(3)tp5使用的是$ this-request-param()接受参数,当然也要在开始写上命名空间

示例代码:

?phpnamespace应用程序\索引\控制器;使用思考\控制器;使用思考\请求;类索引扩展了控制器{公共函数Index(){ print _ r($ this-request-param());return ' style type=' text/CSS ' * { padd : 0;保证金: 0;} .think _ default _ text { padd : 4px 48px;} a { color : # 2e 5c D5 cursor :指针;文本-装饰:无} a :悬停{ text-装饰:下划线;} body { background : # fffont-family : '世纪哥特','微软雅黑;color : # 333 font-size :18 px } h1 { font-size : 100px;字体粗细:正常;边距-底部: 12px} p {行高: 1.6 emfont-size : 42px }/style div style=' padd : 24px 48px;h 1:)/h1p ThinkPhp V5br/span style=' font-size :30 px '十年磨一剑-为应用程序接口开发设计的高性能框架/span/PS pan style=' font-size :22 px;[ V5.0版本由http://。奇牛。com ' rel='外部无跟随' target=' qiniu '七牛云/a独家赞助发布]/span/div脚本类型=' text/JAVAScript ' src=' http :https://Taj s。QQ。com/stats?SiD=9347272 ' charset=' UTF-8 '/脚本脚本类型=' text/JavaScript ' src=' http :https://e . top think。com/Public/static/client。js '/脚本think id=' ad _ BD 568 ce 7058 a 1091 '/think ';}}我们这样访问

http://本地主机/索引。PHP/index/index/index/a/3/b/4/c/5

结果:

2.模板和控制器的关系

每个模块都有自己的控制器、视图和模型,可根据index.php/模块/控制器/方法进行访问。那么每个控制器对应视图中一个同名的文件夹,例如controller/Index controller,而view/Index就是这个控制器对应的模板文件夹,所以每个方法都会对应一个模板文件夹下同名的html文件作为这个方法的模板。

Tp5通过

$this-assign('data ',$ data);分配任务并通过

返回$this-fetch('模板名称');渲染。

示例代码:

索引/控制器/索引

?phpnamespace应用程序\索引\控制器;使用思考\控制器;类Index扩展了Controller { public function Index(){ $ data=' K0rz3n ';$this-assign('data ',$ data);返回$ this-fetch();} }索引/视图/索引/索引. html

html头/头体hello {$data}!/body/html3。搜索引擎优化友好路由

我们知道,我们的搜索引擎最多抓取三层页面,但是我们刚才写的URL太多层次了,非常不利于搜索引擎的收录,所以tp5给我们提供了一个简化的方法,那就是route.php

示例代码:

返回[ '__pattern__'=[ 'name'='\w ',],'[hello]'=[//' : id '=[' Index/hello ',['method'='get'],['id'='\d '],/':name'=['index/hello ',['method'='post'],],' hello/[3: name]'=[' Index/Index/hello ',['method'='这意味着当我们访问hello/name时,它将被转移到index/Index/hello,请求是Get方法,后缀是HTML

配置完成后,我们只需要添加一些东西就可以了

公共函数hello($ name=' Zhang San '){ $ this-assign(' name ',$ name);返回$ this-fetch();}hello.html

html头/头体hello {$name}!/body/html如图所示:

当然,在这种情况下,参数名仍然会有很多斜杠,这仍然不是很友好,所以我们可以修改config.php中的默认斜杠分隔符,并将其更改为其他内容,从而避免了这个问题

4.自动4。网址生成

Tp5为我们提供了url()功能,帮助我们自动生成URL

public function URL(){ echo URL(' URL 2 ',' a=1b=2 ');}运行此方法的结果是

/index/index/url2/a/1/b/2.html

5.请求和响应

1.接收请求的参数

访问:http://本地主机/索引/索引/请求/用户名/测试

用户名可以通过以下代码获得

echo $ this-request-param(' username ');或者我们可以使用函数assistant input(),下面的代码可以达到和上面一样的效果

回声输入('用户名');包括我们通过以下代码获得的url

echo $ this-request-URL();这个也有自己的功能助手

回声请求()-URL();我们可以得到获取post cookie文件的参数等。

$ this-Request-get()$ this-Request-post()$ this-Request-cookie()$ this-Request-file()或者实例化一个Request对象,但是这个方法只能接受url后连接的参数,看来重写是行不通的。

$ request=request : instance()$ request-get()$ rquest-post()$ request-cookie()$ request-file()2。绑定参数

$this-request-bind('user ',' hh ');echo $ this-request-user;那么为什么请求必须动态绑定参数呢?因为很多时候需要传递会话的值来维护会话

3.返回值

您可以以各种格式返回值,例如json xml或通过$this-fetch()呈现模板

返回JSON($ data);返回XML($ data);当然,我们的tp也封装了一些东西,比如输出一个段落,然后跳转到某个方法,或者直接重定向

返回JSON($ data);返回XML($ data);6.模板和输出

我不想介绍一般的模板渲染。这是模板布局。事实上,在视图文件夹下有一个layout.html文件。这个文件的内容是这样的

layout.html

{ include file='/index/header '/} { _ _ content _ _ } { include file='/index/footer '/}然后当我们编写模板时,我们会在顶部添加对此文件的引用。

{layout name='layout'/}如果我们想在全球范围内引入页眉和页脚,则需要在config.php设置此配置,并将以下代码添加到模板配置中

Layout _ on'=' true ',' layout _ name'=' layout ',' layout _ item'=' {_ _ content _ _} ',所以是完全配置的,但是如果我们不想这样配置一些页面,就需要在这样的页面上写

{__NOLAYOUT__}如果我们的模板文件中的静态文件路径没有被写死,我们可以在php文件中的fecth之前设置字符替换

$ this-view-replace([' _ _ PUBLIC _ _ '='/static ',]);如果我们想对每个方法使用这个操作,我们将把上面的代码放入控制器的构造函数中

function _ _ construct(){ parent : _ _ construct();$ this-view-replace([' _ _ PUBLIC _ _ '='/static ',]);}0X05参考

https://www.kancloud.cn/thinkphp/thinkphp5-guide/30551

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:ThinkPHP5的简单搭建和使用详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。