首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TP5中关于路径的几个知识

前言

前几天,有个学在线课程的同学问我:老师,1._PUBLIC_2.url()3.ROOT_PATH4.index/gbook/index这四种路径方法,都是在什么情况使用啊

上面是同学原话,格式不太好,大家将就着看。

我当时给的回复是:你先说说你的看法,并且从TP手册上找到相关说明,然后我们再聊。

今天,就借着这篇文章,和大家聊聊这个问题。

提醒

看本文之前,你应该了解网址路径、硬盘路径、相对路径、绝对路径的意义,否则部分知识你难以深入。

学习框架,就是学习阅读手册

让我们先从官方文档中,找到相关说明。

手册地址 https://www.kancloud.cn/manual/thinkphp5/

_PUBLIC_

文档在这里:https://www.kancloud.cn/manual/thinkphp5/118120

先上结论

这个字符串勉强算是 “模板变量”,只能写在模板中。官方说法是 。

编译模板时,会将其替换为 项目 文件夹所在位置。比如:http://www.sodevel.com/public/

正确的用法

先做配置,通过 config.php 的 (因为TP5已经默认移除了这个字符串)

我们可以这样 写代码,编译后就变成了

如果日后网站更换域名,我们只要修改 view_replace_str 这个配置就可以了,代码更容易维护。

注意

TP5中默认移除了 _PUBLIC_,但是增加了一些其他的”模板变量”,可参考使用。

新的内置变量变成如下这些

错误的理解

很多同学会认为它是 “PHP常量”,因为在PHP中,大写字母基本都是常量,而 __ 开头也有特殊意义(魔术方法)。

然而,_PUBLIC_和 PHP一点关系都没有,它仅仅是 “TP框架模板替换” 有关。

总结

虽然,我在课程中使用了这个语法,其实是习惯使然,大家大可以根据需要替换成其他的内容。

要了解我定义这个字符的目的,而非完全照搬。

url()

文档在这里 https://www.kancloud.cn/manual/thinkphp5/118041

它是TP内置的函数,用来生成各种网址。

正确的用法

先打开 ,找到 的配置,如果是 true

会生成这样的网址:

如果是 false

会生成这样的网址:

结论

你应该注意到了,url 是用来生成网址的。

如果修改了配置文件,url 的样子也会发生改变。

所以

为了我们程序的兼容性,开发的时候应该尽量使用 url() 来生成网址,这样以后修改配置也不会导致程序崩溃。

最简单的例子

使用表单提交数据时,就可以这样用。

ROOT_PATH

文档在这里:https://www.kancloud.cn/manual/thinkphp5/118137

它是什么

TP 定义的PHP常量(它确实是常量)

它代表什么

手册上说

什么是框架应用根目录?

在控制器里调用这行代码:,你看到了什么?

没错

它的值 = 你框架所在的硬盘绝对目录。

注意

文档中还描述了其他常量,以及对应的意义,应仔细阅读。

看不懂的,就 一下。

index/gbook/index

文档在这里:https://www.kancloud.cn/manual/thinkphp5/118037

它的官方称呼:路由地址

index = 模块名

gbook = 控制器类名

index = 控制器方法名

整个系统的基础网址,都是基于他们三个参数而定。

常见的框架网址结构

比如

意为:在 模块,寻找 类的 方法,并且附加 GET参数 id=123

总结

在框架中,与路径相关的不仅仅有这4个,不过你搞清楚了这4个,其他的应该也不是什么问题。

最后

感谢一下同学的提问,正是这种经过总结的提问,不仅能让你进步,还能让我做的更好。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180118B0EW6J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券