database.php文件
这是做数据库配置的文件。
对于我们来说,连接mysql数据库,暂时只会用到这几个参数
'hostname':服务器地址
mysql服务器的地址,一般来说PHP项目和mysql数据库存放一台服务器上,ip地址就写“127.0.0.1”。
'database'、'username'、'password'这三个参数不用说大家也都知道了。
'hostport':端口
mysql服务器的端口号,默认是3306。
这个文件中的其他几个参数,主要用于有多台mysql服务器时所做的一些配置。我们是初学TP框架,肯定也用不到,就不介绍了。在实际项目中真用到了,可去看TP的手册,介绍的很详细。
route.php文件
这是路由配置文件。什么是路由?其实就是URL
比如:https://www.phpnanshen.com/home/test/test2
http://域名/模块/控制器/方法
URL是不是特别长,而且暴露了程序代码框架的结构信息,很容易被人知道这个URL执行的是home模块下test控制器中的test2方法,影响程序安全。难道我们访问TP框架某一模块某一控制器某一方法只能这样输入URL吗?
当然不是!我们都知道URL是可以重写的,在TP框架中当然也可以重写,需要在route.php中重写。
1)
先做一个简单的演示,把https://www.phpnanshen.com/home/test/test2重写为https://www.phpnanshen.com/test2
代码:
想要重写多少个URL都可以。
TP框架手册中对路由这块介绍的东西非常多,短时间研究透,很费脑。路由也不是什么非常重要的地方,用的最多的是think\Route类的get、post、rule静态方法。
2)
除了get方法还有post方法,rule方法,resource方法
直接输入https://www.phpnanshen.com/test3
报错了,知道为什么吗?
因为我们直接输入https://www.phpnanshen.com/test3,用的是get方式访问URL,而不是post方式访问URL。
rule方法不区分访问方式的。
resource方法可以注册一个资源路由,其实就是批量注册了7个路由。
参考-》控制器-》资源控制器。
额外说明:
路由被重写,原来的访问地址会自动失效。
比如:
Route::rule('/test2','home/test/test2');
访问URL“/home/test/test2”失效。
可如果是这样:
Route::rule('/test','home/test/index');
访问URL“/home/test/index”失效。
可访问URL“/home/test”依然是可以访问的。
URL中没有指明方法名,默认是index,也就是“/home/test”和“/test”一样,最终指向的是“/home/test/index”。
3)
再看下面的代码:
看21行代码:如果访问一个方法,并且以get方式传参数id给test6方法,可以在定义的新路由后面加“/:参数名”。
“test6”方法获取到$id了。
总结:
有关TP框架路由的知识,楠神就简单介绍这些,简单又实用。假如以后有朋友开发的项目对URL这块要求很严格,可以好好做下研究。假如您的域名支持泛解析,TP框架可以模拟出使用子域名(二级域名)访问网站不同内容的效果。