前言
前几天,有个学在线课程的同学问我:老师,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个,其他的应该也不是什么问题。
最后
感谢一下同学的提问,正是这种经过总结的提问,不仅能让你进步,还能让我做的更好。
领取专属 10元无门槛券
私享最新 技术干货