关于thinkphp5自定义标签库解析的问题

今天tp5的自定义标签库着实坑了我一把,原因有两点:

1.预加载标签是有缓存的,你设置了预加载标签库,要删除缓存后重新刷新才有效,否则无效,这导致我调试的时候不知道自己到底设置对了没有

2.我一直以为配置是会自动继承父级的配置的,也就是说,在模块中我只需要写好不同的配置就行,然后事实上一位数组的配置确实是这样,但是二位数组的时候第二层数组是会直接覆盖第一层数组的,举个栗子:

猜猜结果是什么,对了,结果是a和b被完全覆盖,ac,dy,bc直接不见了,但是f还在

所以要正确加载标签库,应该在对应的模块下面加载

配置好后记得删除缓存

=============================================================

关于大小写的问题,加载的时候都要大写,在模板中要小写,切记!!!

====================================================================

补充另一个坑爹的东西,如图

tp中的标签参数是可以传变量的,所以我也理所当然的认为这里传递的变量会自动解析成变量供我在标签库中使用,然而....我想多了!,这里传递的是什么在标签库中获取到的就是什么!!!!!

起初我也以为$this->autoBuildVar就是解析变量的函数,然而又不是!!!这个函数仅仅是把你传递的字符串转换为`$xxx`的变量格式,想要把传递的变量真正解析出来,需要你在最后拼接的字符串中拼接出来,就像上图中的$__TAG__数组,起初我是直接把参数的$tag json序列化放进去,以为变量就会自动解析,然后还是学艺不精啊,各位同学,请记住啊,在标签库中获取的参数如果是变量,切记要在拼接的时候放在php内容里面拼接就可以了.

上图我使用了type来判断,一定要放在这里面,因为$parse这里面的代码是最终插入到模板的,自然带php的代码会解析为真正的php代码,而上面的代码都不会在模板中使用,这也是在外面无法解析的真正原因!!!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180622G1D5RX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券