返回介绍

全局配置

发布于 2021-04-06 13:23:43 字数 1787 浏览 948 评论 0 收藏 0

使用QueryList全局配置,避免重复操作。


QueryList的config()方法可用于全局配置QueryList。

使用场景:比如在项目中全局注册QueryList插件,这样在项目中任何位置都可以直接使用这些插件,避免重复注册操作。

示例

在项目的启动文件中全局注册一些QueryList插件和扩展一些功能,以Laravel框架为例,在AppServiceProvider.php文件的boot()方法中全局配置QueryList:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

use QL\QueryList;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return  void
     */
    public function boot()
    {
        // 全局注册插件
        QueryList::config()->use(My\MyPlugin::class,$arg1,$arg2,$arg3)
            ->use([
                 My\MyPlugin1::class,
                 My\MyPlugin2::class,
                 Other\OtherPlugin::class
            ]);

        //全局注册一个自定义的编码转换方法
        QueryList::config()->bind('myEncode',function($outputEncoding,$inputEncoding){
            $html = iconv($inputEncoding,$outputEncoding.'//IGNORE',$this->getHtml());
            $this->setHtml($html);
            return $this;
        });
    }

    /**
     * Register any application services.
     *
     * @return  void
     */
    public function register()
    {
        //
    }
}

之后就可以在项目的任何位置使用QueryList时都可以直接使用这些已注册的扩展功能了:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use QL\QueryList;

class IndexController extends Controller
{
    public function index()
    {
        $data = QueryList::get('...')->myPlugin1('...')->rules('...')->queryData();

        $data = QueryList::get('https://top.etao.com')->myEncode('UTF-8','GBK')->find('a')->texts();
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文