美文网首页
laravel 包引用案例TopClient::connecti

laravel 包引用案例TopClient::connecti

作者: AGEGG | 来源:发表于2019-09-25 15:37 被阅读0次

    一、案例

    地址:

    https://github.com/orzcc/taobao-top-client

    安装

    composer require orzcc/taobao-top-client

    配置

    • 在config/app.php中的providers数组中添加Orzcc\TopClient\TopClientServiceProvider::class,
    • 在config/app.php中的aliases数组中添加'TopClient' => Orzcc\TopClient\Facades\TopClient::class,
    • 执行 php artisan vendor:publish --provider="Orzcc\TopClient\TopClientServiceProvider" 生成配置文件
    • 编辑.env文件,设置appid,appsecret

    示例代码:

    use TopClient;
    use TopClient\request\TbkItemGetRequest;
    
    $topclient = TopClient::connection();
    $req = new TbkItemGetRequest;
    $req->setFields("num_iid,title,pict_url,reserve_price,zk_final_price,user_type,provcity,item_url");
    $req->setQ('手机');
    $req->setSort("tk_total_sales");
    $req->setPageNo('1'); // 实验后发现必需用字符串的数字才能正确分页
    $req->setPageSize('40');
    $resp = $topclient->execute($req);
    dd($resp);
    

    其中TopClient::connection()之前一直不得要领,现在有些思路,一边写着一边梳理

    二、代码梳理

    1.1 首先先看下配置中添加的内容:

    TopClient为在aliasesOrzcc\TopClient\Facades\TopClient::class

    image.png

    查看发现为laravel中的门面设置,最后绑定的是topclient这个类
    topclient到底在哪里定义的那?

    1.2 从服务注册去找

    image.png

    Orzcc\TopClient\TopClientServiceProvider::class,

    image.png
    其他的先不看,看到红框内的内容后,我们知道原来我们使用的$topclient = TopClient::connection();
    TopClient的入口为TopClientManager

    1.3 检验一下

    image.png
    image.png
    image.png
    OK,没问题,但我们发现TopClientManager没有connection方法,只有一个createConnection非常可疑。

    2 调查继承AbstractManager方法

    查看发现AbstractManager文件是引用的graham-campbell/manager包
    查看下这个包的文档:


    image.png

    终于我们在AbstractManager类中找到个connection方法


    image.png

    3 好了,浅析下主要操作

    TopClient::connection();其实就是AbstractManager::connection()

    image.png

    OK,整个路径分析的差不多了,
    这样就很清楚了


    image.png

    使用这个包时,我们需要完成这2个方法即可

    相关文章

      网友评论

          本文标题:laravel 包引用案例TopClient::connecti

          本文链接:https://www.haomeiwen.com/subject/bzrzectx.html