注意:這里只是針對於非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);