如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

在前两篇文章use()bind()的基础之上,苏南大叔在说一下config()方法。使用QueryList::config()可以全局注册use()bind(),扩展QueryList对象功能。基本上来说,config()+ use(),或者config()+bind(),就可以把扩展功能增加到每个QueryList对象上了。

利用 config() 全局注册 use() 和 bind() ,扩展 QueryList 功能 - 全局注册config
利用 config() 全局注册 use() 和 bind() ,扩展 QueryList 功能(图1-1)

Config static config()基本定义

Config static config()

静态方法,全局配置QueryList,返回值为QL\Config对象。

方法列表:

  • use() 全局安装插件
  • bind() 全局功能扩展

Config use($plugins,…$opt)

用法同QueryListuse方法,全局安装插件后,所有QueryList对象均可使用这些插件。

QueryList::config()->use(My\MyPlugin::class,$arg1,$arg2,$arg3);
QueryList::config()->use(My\MyPlugin::class)->use([
 My\MyPlugin::class,
 My\MyPlugin2::class,
 Other\OtherPlugin::class
]);

Config bind(string $name, Closure $provider)

用法同QueryListbind()方法,全局功能扩展,所有QueryList对象均可使用扩展的方法。

例一:全局注册一个自定义的编码转换方法

QueryList::config()->bind('myEncode',function($outputEncoding,$inputEncoding){
    $html = iconv($inputEncoding,$outputEncoding.'//IGNORE',$this->getHtml());
    $this->setHtml($html);
    return $this;
});
$data = QueryList::get('https://top.etao.com')->myEncode('UTF-8','GBK')->find('a')->texts();
print_r($data->all());

例二:全局注册一个myHttp方法到QueryList对象

QueryList::config()->bind('myHttp',function($url){
   $html = file_get_contents($url);
    $this->setHtml($html);
    return $this;
});
$data = QueryList::myHttp('https://top.etao.com')->find('a')->texts();
print_r($data->all());

总结

从例子上,我们可以看出,就是原本的use()bind()从原来的实例位置,换到了QueryList::config()上。基本上思路都还是一样一样的。

更多苏南大叔的querylist经验文章,请点击链接:

 【querylist】秘籍文章入口,仅传授于有缘之人   querylist

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!