zoukankan      html  css  js  c++  java
  • PHP系列 | ThinkPHP5.1 如何自动加载第三方SDK(非composer包 )

    注意:这里只是针对于非Composer 安装包的自动加载的实现,能用composer安装的自动跳过。

    由于ThinkPHP5.1 严格遵循PSR-4规范,不再建议手动导入类库文件,所以新版取消了Loader::import方法以及import和vendor助手函数,推荐全面采用命名空间方式的类以及自动加载机制,如果必须使用请直接改为php内置的include或者require语法。

    以下以钉钉官方的SDK为案例(由于钉钉官方没有像阿里云那样直接可以使用composer直接安装)。

    当然Github有一个开源的composer安装包:https://github.com/mingyoung/dingtalk

    你说你为啥不用这个,却要自定自动加载官方的包。因为这个PHP的版本必须是大于7.0,而针对于5.6则就不行了

    1、官方SDK下载地址:https://ding-doc.dingtalk.com/doc#/faquestions/vzbp02

    2、下载解压后,首先将第三方SDK复制到项目中vendor目录下。

    3、在composer.json文件中添加:"files":["vendor/dingdingsdk/TopSdk.php"],添加后:

        "autoload": {
            "psr-4": {
                "app\": "application",
                "scource\": "scource"
            },
            "files":[
                "vendor/dingdingsdk/TopSdk.php"
            ]
        },
    

    4、通过终端跳转到项目根目录,然后执行 composer dump-autoload 

    5、然后在项目中就可以直接使用了

    use DingTalkClient;
    use DingTalkConstant;
    use OapiGettokenRequest;
    
    $appKey= 'dingt4lur7345435tiqnrp';
    $appSecret= 'QWagw3j_R5J2fSK43KgRn_vtFFFFFFoooqLzOBDEwx8izfu-hrB';
    $client = new DingTalkClient();
    $req = new OapiGettokenRequest();
    $resp = $client->executeWithAccessKey($req,null,$appKey,$appSecret);

    钉钉调用案例 

    1、获取access_token 令牌、创建部门

            $appKey= 'ding8l64ltuffd';
            $appSecret= 'u2LQPxU_0l2Il3izeeeexx13fHgLB9Z28M5jyJwJV-JXlhH7KDd_slw2';
    
            $client = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI,DingTalkConstant::$METHOD_GET,DingTalkConstant::$FORMAT_JSON);
            $req = new OapiGettokenRequest();
            $req->setAppkey($appKey);
            $req->setAppsecret($appSecret);
            $resp = $client->execute($req,null,'https://oapi.dingtalk.com/gettoken');
            $accessToken = $resp->access_token;
            
            $client = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI,DingTalkConstant::$METHOD_POST,DingTalkConstant::$FORMAT_JSON);
            $req = new OapiDepartmentCreateRequest();
            $req->setName("Tinywan部门");
            $req->setParentid('1');
            $req->setCreateDeptGroup(true); // 创建一个关联此部门的企业群
            $req->setOrder("100");
            $req->setSourceIdentifier('group_001'); // 部门标识字段,开发者可用该字段来唯一标识一个部门,并与钉钉外部通讯录里的部门做映射
            $result2 = $client->execute($req,$accessToken,'https://oapi.dingtalk.com/department/create');
            halt($result2);
  • 相关阅读:
    【WPF】城市级联(XmlDataProvider)
    【C#】利用反射构建实体
    毕业档案保存
    【WPF】淡入淡出切换页面
    【C#】Lamada表达式演变过程
    【C#】实现INotifyPropertyChanged的3种方法
    【Unity】矩阵运算
    (win7/8/10)鼠标右键添加按下SHIFT键时弹出带管理员权限的“在此处打开命令窗口”
    如何给grldr.mbr和grldr改名
    常用的时间同步服务器地址
  • 原文地址:https://www.cnblogs.com/tinywan/p/12289962.html
Copyright © 2011-2022 走看看