thinkphp使用php标签,ThinkPHP框架定义自己的标签库

1.准备工作

thinkphp目前主流开发版本时 3.2.2,全面进入面向对象的时代了,但可能是个人水平的缘故,tp3.2.2+中的命名空间没怎么看懂过,所以用起来很吃力,也直接影响了自定义标签的扩展能力。

先来看看系统自带的标签库,Cx.class.php是系统的内置标签库,Html.class.php可以认为是自定义标签库

23824627b184b438dfdae54bddf9ab29.png

1.1为什么说Cx.class.php是自定义标签库呢?

在tp默认的配置文件中有这样一个配置,当然也可以Html.class.php设置为内置标签库

c240d2bb6a9eb057463421bee638bb6f.png

1.2自定义标签库和内置标签库的使用有什么区别么?

这里需要说一下,由于水平原因,没弄懂命名空间,所以自定义标签库也只能放在 路径ThinkPHP\Library\Think\Template\TagLib下了

其实说到这里,相信很多人已经回了,Html.class.php就在眼前,为什么不模仿一下呢,呵呵,没错,模仿吧

2.这里我定义了一个 Sql.class.php目录,如下放置

06e9b8322aa5866cc4f36b12de0896b8.png

内容是(哎,万恶的命名空间啊~~)

namespace Think\Template\TagLib;

use Think\Template\TagLib;

class Sql extends TagLib

{

protected $tags = array(

'list' => array('attr' => 'limit,order','close' =>1)// attr 属性列表close 是否闭合(0 或者1 默认为1,表示闭合)

);

public function _list($attr,$content)  //标签名 单划线开头

{

$limit=$attr['limit'];//参数$limit,可通过模板传入参数值

$order=$attr['order'];//$order$limit,可通过模板传入参数值

$str='<?php  ';

$str .= '$field=array("id","title","hits");';//定义需要调用的字段

$str .= '$_list_news=M("News")->field($field)->limit('.$limit.')->order("'.$order.'")->select();';//查询语句

$str .= 'foreach ($_list_news as $_list_value):';

$str .= 'extract($_list_value);';

$str .= '$url=U("read/".$id);?>';//自定义文章生成路径$url

$str .= $content;

$str .='<?php  endforeach ?>';

return $str;

}

}

?>

3.使用方式

html>

Index|Home

{$key}|{$vo.id}:{$vo.name}

  •  {$title}

~~~~~~~~~~~~~~~~~~成功的喜悦,悲伤的过程~~~~~~~~~~~~~~~~~~~~~~~~~~~

4.我们再来看看标签库是如何被解析的

58bde09c03787090804f6f2891989469.png

936bb62df4fd17cd986542ac1ad265d6.png

呵呵,命名空间,也就是说这里基本上只往这个目录下放了。当然,这不是坏事,因为作为库存在的一般是依赖心比较低的,所以来说也推荐这么做,

这样可以为自己积累一些优秀的标签库,毕竟源码可以修改,如果你不敢修改,那你只能使用mvc传统方法查数据了。

5.为什么要使用自定义标签呢?

自定义标签解决的是重复性问题和全局性问题,通过自定义标签可以减少重复性工作,全局性问题是,代码重用度高,另外代码可读性高,通过简单的参数设定,就可以完成某些查询,从而也减少了控制器的代码,最后一点,自定义标签的可维护性也很好。

try doing it.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ThinkPHP是一个开源的PHP框架,它能够帮助开发者快速搭建网站。使用ThinkPHP框架有以下几个步骤: 1. 安装:首先,需要在服务器上安装PHP和MySQL,然后从官方网站上下载最新的ThinkPHP框架压缩包。将其解压缩到服务器的网站根目录下。 2. 配置:接下来,需要编辑ThinkPHP框架的配置文件。配置文件允许开发者定义数据连接、URL路由等重要参数。通过修改配置文件,可以轻松地配置网站的各种功能。 3. 编写代码:一旦完成了配置,就可以开始编写代码了。ThinkPHP框架通过模块、控制器和视图的结构来组织代码。开发者可以根据实际需要创建相应的模块和控制器,并在控制器中编写处理逻辑。视图用于展示数据和用户界面。 4. 数据操作:ThinkPHP框架提供了丰富的数据操作方法,开发者可以轻松地进行数据的增删改查操作。框架中的模型类可以简化数据查询和数据操作,使得开发过程更加高效。 5. 路由设置:ThinkPHP框架的路由功能可以帮助开发者定义网站的URL规则。通过配置路由规则,可以实现友好的URL地址,并将用户请求正确地转发到相应的控制器和方法。 使用ThinkPHP框架可以大大简化网站开发的过程,提高开发效率。框架具备强大的功能和丰富的扩展,开发者可以根据实际需求选择适合的组件来完成各种功能。同时,框架还提供了丰富的文档和示例代码,便于开发者学习和使用。通过灵活的配置和强大的功能,使用ThinkPHP框架可以快速搭建出稳定、安全、高效的网站。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值