thinkphp5
2017-06-25 本文已影响35人
西兰花伟大炮
(1)框架目录结构
thinkphp目录结构.PNG(2)因为app目录是被隐藏的,访问文件需要经过index入口文件,然后访问需要加上public目录
访问路径.PNG(3)重写配置
覆盖配置_在public目录下的index.php里面定义.PNG如果需要重写覆盖默认配置,需要先在public目录下的入口文件index.php里面配置重写目录文件,然后在主目录下新建一个conf目录,里面新建一个config.php,然后里面直接返回一个数组,数组添加你需要的配置
重写配置.PNG
(4)扩展配置
扩展配置1.PNG 扩展配置.PNG在conf目录下新建一个extra目录(必须为这个名字),在extra目录下新建的文件会作为整个配置函数的一个键名,也是文件里面返回数组的数组名
(5)config类的位置
app / thinkphp / library / think / config.php
(6)请求对象获取
<?php
namespace app\index\controller;
use think\Request;
//请求对象获取的三种方式
class Index{
/* public function index((第二种)Request $request){ //不要错误写成构造函数了
(第一种) //$request =request();
var_dump($request);
}*/
public function index(){
print_r(Request::instance());//第三种 直接类调用
}
}
(7)视图替换
建立视图首先需要在controller同级目录新建view目录,view目录下新建与控制器同名的index目录用来存放html视图文件
视图1.PNG
- 上图是index模块下的控制器跟视图
1 返回view函数,里面传参为html文件名
视图2.PNG传参数组.PNG 在html里面进行替换.PNGview()函数里面的第二个参数是需要替换的变量的数组集合
替换时的变量名前才需要加上$
(8)隐藏入口文件
因为所有请求的入口都经过public下的index.php,为了优化我们的url请求,进行如下配置,在apache的httpd.conf文件里面作如下修改
- 将loadModule 前注释去掉
- 将allowoverride的none改为all
(9)入口文件的绑定
-
在public的index里定义路径,如果定义了模块 / 控制器 ,就只需要在url传入方法名
在public的index里面定义路径.PNG
如果访问所有模块的控制器里面的方法报错,就应该检查是否是入口文件绑定了导致都会定位到某个模块下的控制器
(9)路由
get传参的url访问.PNG重新配置url.PNG 用新的路径进行访问.PNG如果需要重写url,用自定义的方式来访问,可以在自定义的conf目录下新建route.php,然后使用返回数组的方式的配置
- 旧的路径会失效