(更新1)PHP MVC框架开发之基于路由的视图函数

2个月前 PHP代码 110°C

这篇文章最后更新于12-18 21:24前,您需要注意相关的内容是否还可用,如有疑问请联系作者!

V视图模板调用函数

<?php
//视图模板加载函数
//$v 通过string 声明参数为一个字符串类型
function V(string $v){

//判断变量是否为空
if (empty($v)){

echo exit("视图模板名称不能为空");

}

//获取模块名(ps:这里的U函数是自定义封装的上一篇路由文章中的C方法)
$mokuai = U(0);

//判断变量是否为控制
if (empty($mokuai)){

echo exit("模块名请不要为空");

}

//判断视图模板是否为字母和数字
if (!ctype_alnum($v)) {

echo exit("视图名称不符合规则");

}

//拼装视图文件路径
$lujing = APP_PATH.$mokuai.'/view/'.$v.'.html';

//判断控制器文件是否存在
if(!file_exists($lujing)){

echo exit($v."视图文件不存在");

}

include_once $lujing;

}

新版功能加强(是能作为参考,其中又其它自定义函数无法用于实际用途)

说明

第一个参数控制着模板,第二参数控制着返回类型,第三参数控制着插件模板

提示:通过该函数调用模板会先从一个公共自定义模板文件进行调用判断模板是否存在,不存在在调用各个旗下的模板

//视图模板加载函数
//$v 通过string 声明参数为一个字符串类型
//重要提示:此函数默认只能作用于模板内,如果用于控制器类调用会存在引入权重问题,导致相关代码无法使用。
//如果想要在控制器中使用不出问题就需要设置第二个参数为false,这样只会返回一个模板路径地址,再在控制器中引入。
//如果插件中使用模板同上
//插件中的模板也可以在公共自定义模板中进行开发美化
function V(string $v , bool $a = true , string $b = null){

global $config;

//判断变量是否为空
if (empty($v)){

 echo TS("模板:名称不能为空","/","模板加载错误");
 
}

//获取模块名
$mokuai = U(0);

//判断变量是否为控制
if (empty($mokuai)){

 echo TS("模块:名称请不要为空","/","模板加载错误");
 
}

//判断视图模板是否为字母和数字
if (!ctype_alnum($v)) {

    echo TS("模板:名称不符合规则","/","模板加载错误");
}

//进行参数过滤
$v= A($v,'xssreplace');

if ($b == null){

//拼装视图公共模板文件路径(公共模板主要用于后期所有模块下面的模板开发修改)
$lujing = APP_PATH.'/view/'.$config["vapp"].'/'.$v.$config["view"];

}else{

//拼装视图公共模板文件路径(公共模板主要用于后期所有模块下面的模板开发修改)
$lujing = APP_PATH.'/view/'.$config["vapp"].'/'.$b.$v.$config["view"];

 //判断控制器文件是否存在
if(!file_exists($lujing)){   
    
//判断视图模板是否为字母和数字
if (!ctype_alnum($b)) {

    echo TS("插件模板:名称不符合规则","/","插件模板加载错误");
}

//进行参数过滤
$v= A($b,'xssreplace');

//拼装视图公共模板文件路径(公共模板主要用于后期所有模块下面的模板开发修改)
$lujing = APP_PATH.$b.'/view/'.$v.$config["view"];
}

}

//判断控制器文件是否存在
if(!file_exists($lujing)){

if ($b == null){

//拼装模块下面的视图模板文件路径
$lujing = APP_PATH.$mokuai.'/view/'.$config["vapp"].'/'.$v.$config["view"];

//判断模板文件是否存在
if(!file_exists($lujing)){
    
    //写入日志
    XLOG("模板:".$v."文件不存在");

     echo TS("模板:".$v."文件不存在","/","模板加载错误");
} 

}else{
    
    //写入日志
    XLOG("模板:".$v."文件不存在");

     echo TS("模板:".$v."文件不存在","/","模板加载错误");


}
  
}

if ($a == true){
    
include _include($lujing);

}else{

return $lujing;
}

}
版权说明:本站所提供的文章、图片等内容均为用户发布或互联网整理而来,仅供学习参考,如有侵犯您的版权,请联系我们客服人员删除。
本文链接:https://huue.cc/index.php/archives/1689.html
最后编辑: 21年12月18日

随机内容

网友评论

4天前

大佬啥时候参与max/routing的开发啊,把功能加到routing中 https://github.com/topyao/max-routing

6天前

11111

1个月前

1111

1个月前

1

2个月前

e21e12e12

2个月前

菊花残,满腚伤。ଲ