|
一:模块设计 默认采用单模块,支持单模块,所有模块用app作为根命名空间 可以建立common模块,但是不能直接访问,可以在其它模块中访问,提高安全性 common 类可以被任意继承 二 :tp5的配置 1 惯例配置 定义配置目录 在入口文件中 define('CONF_PATH',__DIR__.'/../conf/'); 2 应用配置 在上节目录中新建config.PHP return array(); 数组里面是配置项 3 扩展配置 把不同的配置文件拆分成不能的配置文件,便于管理,在config目录中新建扩展配置文件夹extra 然后直接新建配置文件 例如 qiniu.php 配置格式与上相同 tp5 允许将database配置直接放在config文件夹下(与config.php同一级别) 4 场景配置 在比同场景使用的不同配置 在config.php中配置app_status,然后在extra中建立相应环境的配置 5 模块配置 在config文件夹下建立和模块名相同的文件夹,然后新建config.php文件 模块配置的目录和config目录一致,可新建extra扩展配置,扩展配置只在相应模块下有作用 6 动态配置 a. 在控制器中的__construct 构造函数中使用助手函数config的配置项可以在控制器中生效 b. 在方法中使用助手函数新建的配置项只在改方法中生效 7 config类的使用 动态改变config配置,可以使用助手函数config()和使用config类 config('key','value','作用域') 判断key是否存在 config('?key'); 8 环境变量配置和使用 三:路由 1 入口文件 public/index.php 单一入口 2 隐藏入口文件 既是隐藏index.php a 开启apache的rewrite模块,allowed all b .htaccess 配置 在public目录下存在,不需要自己配置 2 入口文件绑定 绑定模块名,缩短uri 例如要绑定后台模块 在admin.php中定义 difine('BIND_MODULE','admin'); 绑定后台模块 difine('BIND_MODULE','admin/Index');绑定后台的Index控制器 在配置文件中设置 'auto_bind_module'=>true 则可以不用再定义 difine('BIND_MODULE','admin'); 3 路由 先开启路由(默认已经开启) 在配置文件中配置 'url_route_on'=>true, 'url_route_must'=>false (为true则必须配置路由才能访问) 在配置文件中新建路由文件 route.php 直接写路由规则 例如 return array( 'news/:id'=>'index/Index/news', ); 四 : 请求 1 request 请求 a 助手函数 request() b Thinkphp 的request类 c 对象注入,把对象注入到方法中 2 请求对象request a 获取浏览器中的链接 获取域名 $request->domain() 获取pathinfo $request->pathinfo() 获取path路径 $request->path() b 请求类型 当前请求的类型 $request->method(); 判断是否为get请求 $request->isGet() 判断是否为ajax请求 $request->isAjax() ---判断是否为手机 $request->isMobile(); c 请求的参数 获取?后的参数 $request->get() 获取所有的参数(包括path中的) $request->param() 获取post请求 $request->post() 获取session $request->session() 获取cookie $request->cookie() d 获取模块,控制器,操作 $request->module(); $request->controller(); $request->action(); 3 input 助手函数 相当于tp3.2中的I函数 input('post.name') input('get.name') input('cookie.name) input('session.name) ... 可以获取request中的各种参数 4 响应对象 config('default_return_type','json');通过动态修改返回参数类型来进行return操作 更适用于api的封装 type类型支持json,xml,html(默认) 例如: config('default_return_type','json'); $res = ['code'=>200, 'data'=>[1,2,3,4,5,6,7,8,9] ]; return $res; 则返回的是json数据 五 视图 直接显示 return view();默认为app/分组名/view/控制器名/方法名.html 传递第一个参数 return view('name') 默认为 app/分组名/view/控制器名/name.html 传递第一个参数 return view('name1/name2') 默认为 app/分组名/view/name1/name2.html return view('./index.html') 默认为index.php入口文件同级目录下的index,.html文件
向模板中传值 第二个参数为数组形式 return view('name',['key'=>'value']) |