admin 发表于 2023-3-28 23:36:44

小善心问诊系统二次开发绍文档-错误处理

系统只提供了简单的错误结构概念,允许用户进行业务级的错误处理,并不支持系统级的抛出、捕获异常处理。
系统很多系统函数也是这样返回错误信息的,在使用时,尽量使用 is_error 函数来判断使用错误处理器系统中使用 error($errno, $message = '') 来定义一个错误结构,使用 is_error($data) 函数来判断是否发生错误。例如:$file_delete_status = file_remote_delete('test.jpg');if (!is_error($file_delete_status)) {        message('删除成功');} else {        message('删除失败,错误码如下:' . $file_delete_status['errno'] . ',错误如下:' . $file_delete_status['message']);} function file_remote_delete($file) {        global $_W;        if(empty($file)) {                return error(1, '文件不存在');        }        $ftp = new Ftp();        if ($ftp->delete_file($file)) {                return true;        } else {                return error(1, '删除附件失败,请检查配置并重新删除');        }}二十五、模板-标签模板文件本质上就是一个php文件,所以支持直接书写php代码,但是为了增加开发效率和非php人员的使用,小善心系统定了了一套类似于 Smarty 的模板引擎标签。下面我们通过实例讲解一下小善心中的标签如何使用。输出变量{$foo}输出标签是由一对花括号做为定界符的,不支持输出数组,相对于php中的 echo示例<div class="user-head ellipsis">{$_W['fans']['nickname']}</div>// 对等于 <div class="user-head ellipsis"><?php echo $_W['fans']['nickname']; ?></div>判断语句{if condition}{elseif condition}{else}{/if}条件选择分支示例如果 $do 等于 record 则显示下面的卡券领取记录,否则显示查看卡券{if $do == 'record'}<li class="active"><a href="javascript:;">卡券领取记录</a></li>{else}<li class="active"><a href="javascript:;">查看卡券</a></li>{/if}if 和 elseif 配合使用{if $dca['status'] == 1}        <span class="label label-success">未使用</span>{elseif $dca['status'] == 2}        <span class="label label-warning">已失效</span>{elseif $dca['status'] == 3}        <span class="label label-danger">已核销</span>{elseif $dca['status'] == 4}        <span class="label label-default">已删除</span>{else}        <span class="label label-default">全部</span>{/if}循环语句{loop $result $key $value}{/loop}循环遍历语句,相当于PHP中的foreach ($result as $key => $value) { }参数· $key 可以使用其它名称,将存储数组中每一成员的键值· $value 可以使用其它名称,将存储数组中每一成员的值示例循环一个数组用 loop 标签,与php中的 foreach 函数类似,第一个参数为数组的索引,第二个参数为数组第一项的值,只要标签成对匹配,模板中的标签是可以嵌套使用的。{loop $list $index $item}<tr>        <td>{$index}(显示数组的索引):</td>        <td>{$item['user']['nickname']}</td>        <td>        {if $item['follow'] == '1'}                <span class="label label-success">已关注 </span>         {elseif $item['unfollowtime'] <> '0'}                <span class="label label-warning" >取消关注 </span>        {else}                <span class="label label-danger">未关注 </span>        {/if}        </td></tr>{/loop}php语句{php expression}运行一个PHP原生代码,不支持多行php语句参数· expression 符合PHP语法的表达式示例由于某些时候需要使用一些php来输出内容,比如格式化时间戳为日期时,此写法并不支持多行php语句,例如:<span class="help-block">{ php echo date('Y-m-d H:i:s', $row['followtime'])}</span>或者<?phpecho 1;?>引用模板{template '$templatename'}引用一个模板文件参数· $templatename 模板名称或是路径+模板名称示例在模板中如果需要引用其它模板文件可以使用以下的方法://模块中的使用方法,不需要添加目录信息{template 'header'} //系统的模板引用的方法,需要添加目录信息{template 'common/header-base'}创建URL{url 'controller/action/do', (array)querystring}创建一个小善心URL参数· controller 控制器名称,URL中的 c= 值· action URL中的a=值· do URL中的do=值· querystring URL中后面的querystring参数示例定义URL时,与在php文件中的创建方法一样,具体使用如下:<a href="{url 'extension/service/display'}" class="tile img-rounded"><i class="fa fa-glass"></i><span>常用服务</span></a><a href="{url 'home/welcome/ext' array('m' => $module['name'])}">模块 - {$module['title']}</a>此标签并没有提供模块 $this→createMobileUrl('xx') 函数,在模块中的模板中请按以下方法创建:echo $this->createMobileUrl('order')}转义附件URL{media imageurl}转换一个图片地址为绝对地址参数· imageurl 图片地址,可以是相对也可以绝对示例小善心系统支持远程附件,如果你有用到图片或是附件请转义一下地址,具体使用如下:<i style="background:url({media $nav['icon']}) no-repeat;"></i>输出花括号{##string##}示例因为模板标签定界符是一对花括号,所以当你想输出一对花括号本身时可以使用以下方法:{##$order##}此时花括号和变量不会被转义
页: [1]
查看完整版本: 小善心问诊系统二次开发绍文档-错误处理