第十四章:第13节thinkPHP框架——数据库配置和路由配置

更新于:2018-03-25 20:54:07

database.php文件


这是做数据库配置的文件。


对于我们来说,连接mysql数据库,暂时只会用到这几个参数


1.png


'hostname':服务器地址


mysql服务器的地址,一般来说PHP项目和mysql数据库存放一台服务器上,ip地址就写“127.0.0.1”。


'database'、'username'、'password'这三个参数不用说大家也都知道了。


'hostport':端口


mysql服务器的端口号,默认是3306。


这个文件中的其他几个参数,主要用于有多台mysql服务器时所做的一些配置。我们是初学TP框架,肯定也用不到,就不介绍了。在实际项目中真用到了,可去看TP的手册,介绍的很详细。


1.png


route.php文件


这是路由配置文件。什么是路由?其实就是URL


1.png


比如: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


1.png

代码:


1.png


想要重写多少个URL都可以。


TP框架手册中对路由这块介绍的东西非常多,短时间研究透,很费脑。路由也不是什么非常重要的地方,用的最多的是think\Route类的get、post、rule静态方法。


2)


除了get方法还有post方法,rule方法,resource方法


1.png


直接输入https://www.phpnanshen.com/test3


1.png


报错了,知道为什么吗?


因为我们直接输入https://www.phpnanshen.com/test3,用的是get方式访问URL,而不是post方式访问URL。


rule方法不区分访问方式的。


resource方法可以注册一个资源路由,其实就是批量注册了7个路由。


1.png

参考-》控制器-》资源控制器。


额外说明:


路由被重写,原来的访问地址会自动失效。


比如:

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)


再看下面的代码:


1.png


看21行代码:如果访问一个方法,并且以get方式传参数id给test6方法,可以在定义的新路由后面加“/:参数名”。


1.png


1.png

“test6”方法获取到$id了。


总结:


有关TP框架路由的知识,楠神就简单介绍这些,简单又实用。假如以后有朋友开发的项目对URL这块要求很严格,可以好好做下研究。假如您的域名支持泛解析,TP框架可以模拟出使用子域名(二级域名)访问网站不同内容的效果。


本节学习代码》》》