白癜风复发怎么治疗 https://m-mip.39.net/nk/mip_4467053.htmlThinkPHP框架常用的是MVC模式,M是模型、V是视图,C是控制器。通过MVC模式将数据从数据库中查询出来,然后传递到页面中。下面我们来说一下具体的情况;
程序
一、视图渲染
模板定位规则:当前模块/view/当前控制器名(小写)/当前操作(小写).html。在5.1.6版本后系统会以简洁模式定位模板文件位置,规则如下:当前模块/view/当前控制器(小写)_当前操作(小写).html
1、Fetch方法
fetch方式是渲染模板时最常用的方法,在使用此方法的前提是控制器类需要继承系统控制器基础类。使用方式如下:
(1)、不需要传递任何参数,框架会自动定位到模板文件;
return$this-fetch();
(2)、传递一个参数,框架会定位至当前控制器下的参数一模板文件;
return$this-fetch(edit);
(3)、传递两个参数,框架会定位至参数一控制器下的参数二模板文件;
return$this-fetch(member/read);
注意事项:在书写参数时请不要书写任何后缀,参数只是目录名称或文件名称而已。
(4)、视图根目录下文件
如果想把view文件夹内的单独文件进行渲染,可以在参数位置进行如下书写:
return$this-fetch(/menu);
(5)、特殊模板文件或特殊位置文件
如果项目中存在特殊模板文件,又不想移动位置,可以通过如下方式进行调用:
return$this-fetch(./template/menu.html);
上面书写的目录位置是相对于当前项目入口文件位置(public目录),模板文件后缀无固定要求,可以为html、php、tpl等格式
PHP代码
2、助手函数方式
如果控制器未继承系统基础控制器类,同样可以实现视图模板的输出,框架提供了助手函数view(),可以使用如下命令:
returnview();
可传递参数及数据,常见的使用方式如下:
returnview(模板文件路径,数据);
3、直接解析模板方式
项目中某些页面可能通过直接解析模板的方式就可以实现功能,那么我们可以通过最简单的方式对模板文件进行输出。使用如下命令:
return$this-display();
此方式会直接渲染内容,同样模板标签在视图中可以正常使用。
HTML模板
二、视图赋值
1、assign方法
在继承系统基础控制器类后可以通过如下命令进行视图赋值:
$this-assign(名,值);
批量赋值方式:
$this-assign([名=值,名=值]);
2、方法传入参数方式
此方式在进行视图渲染中提及到了,通过设置模板文件位置时携带数据。命令如下:
$this-fetch(path,[名=值,名=值]);$this-display(path,[名=值,名=值]);
3、助手函数赋值方式
这种方式是项目开发过程中最常见的模式,助手函数无需继承基础控制类,相对而言代码更加精简、可读性更高。命令如下:
returnview(path,[名=值,名=值]);
4、公共模板变量赋值方式
可以使用视图类的share静态方法进行全局公共模板变量赋值。命令如下:
usethink\facade\View;//赋值全局模板变量View::share(name,value);//或者批量赋值View::share([name1=value,name2=value2]);
视频过滤
三、视图过滤
1、局部过滤
在单独方法内进行视图过滤操作。命令如下:
//使用视图输出过滤return$this-filter(function($content){returnstr_replace(\r\n,br/,$content);})-fetch();
2、全局过滤
如果进行全局过滤方式,需要在初始化方法中进行设置。命令如下:
protectedfunctioninitialize(){$this-view-filter(function($content){returnstr_replace(\r\n,br/,$content);});}
总结:视图过滤方式可以理解过对视图模板中内容进行了替换操作,可以通过此方式减少代码空行,无用的缩进。减少代码体积。
四、模板引擎
框架中内置了模板引擎,默认可以忽略对此进行设置,同时框架支持自定义引擎模式。在配置目录(config目录)下的template.php文件中可进行配置。
默认提供了两种扩展引擎:think-angular、twig(都不是很完美,不建议使用
4、)
五、扩展
如果只想获得解析文件而不进行渲染,如果生成静态HTML文件,采用纯静态化模式。可以使用如下命令:
$html=$this-fetch()-getContent();
此方式返回字符串,可以继承文件创建方式,批量生成HTML静态文件,便于网站优化。
六、总结
1、依据场景,选择不同的渲染方式;
2、合理的进行模板赋值;
3、牢记特殊模板文件位置是基础项目入口文件位置;
4、模板文件配置目录为:config/template.php文件;