You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
zhishifufei_php/extend/Api/AliyunSdk.php

206 lines
4.6 KiB

<?php
namespace Api;
abstract class AliyunSdk
{
/**
* AccessKey
* @var mixed|null
*/
protected $AccessKey = null;
/**
* AccessKeySecret
* @var mixed|null
*/
protected $AccessKeySecret = null;
/**
* 自动加载阿里云类
* @var array
*/
protected $autoLoadPath = [];
/**
* 是否打印错误信息
* @var bool
*/
protected $showError = false;
/**
* 接口数据集合
* @var array
*/
protected $request = [];
/**
* 阿里云接口实例化结果
* @var null
*/
protected $client = null;
/**
* 动作名称
* @var array
*/
protected $action = [];
/**
* 配置信息
* @var array
*/
protected $config;
/**
* 类实例化
* @var null
*/
protected static $instance = null;
/**
* 错误信息
* @var null
*/
protected static $errorInfo = null;
/**
* 初始化程序
* */
protected function __construct($cofing = [])
{
$this->AccessKey = isset($cofing['AccessKey']) ? $cofing['AccessKey'] : null;
$this->AccessKeySecret = isset($cofing['AccessKeySecret']) ? $cofing['AccessKeySecret'] : null;
$this->config = $cofing;
$this->autoLoaderClass();
$this->_initialize();
}
/**
* 自动加载类
* */
protected function autoLoaderClass()
{
if ($this->autoLoadPath) {
require_once(ROOT_PATH . '/extend/Api/aliyun/aliyun-php-sdk-core/Config.php');
foreach ($this->autoLoadPath as $item) {
\Autoloader::addAutoloadPath('aliyun-php-sdk-' . $item);
}
}
}
/**
* 实例化阿里云接口
* */
abstract protected function _initialize();
/**
* 设置错误信息
* @param object | string $error
* @return boolean
* */
protected static function setErrorInfo($error, $thsiAction = null)
{
$_this = self::instance();
$request = \think\Request::instance();
if ($error instanceof \Exception) {
self::$errorInfo = [
'line' => $error->getLine(),
'msg' => $error->getMessage(),
'code' => $error->getCode(),
'file' => $error->getFile(),
];
(!$request->isAjax() && $_this->showError) && dump([
'msg' => $error->getMessage(),
'code' => $error->getCode(),
'file' => $error->getFile(),
'line' => $error->getLine(),
'action' => $thsiAction,
]);
} else {
self::$errorInfo = $error;
(!$request->isAjax() && $_this->showError) && dump($error);
}
return false;
}
/**
* 获取错误信息
* @param string $error
* @return array
* */
public static function getErrorInfo($error = '')
{
if (is_null(self::$errorInfo)) self::$errorInfo = $error;
$errorInfo = self::$errorInfo;
self::$errorInfo = null;
if (!is_array($errorInfo)) {
return ['msg' => $errorInfo];
}
return $errorInfo;
}
/**
* 初始化
* @param array $cofing
* @return $this
*/
public static function instance($cofing = [])
{
if (is_null(self::$instance)) self::$instance = new static($cofing);
return self::$instance;
}
/**
* 设置时间格式
* */
public static function setTimeFormat($time = '')
{
$time = $time ? $time : time();
if (is_string($time)) {
if ((int)$time == 0) {
$data = date("Y-m-d\\TH:i:s\\Z", strtotime($time));
} else {
$data = date("Y-m-d\\TH:i:s\\Z", $time);
}
} else {
$data = date("Y-m-d\\TH:i:s\\Z", $time);
}
return $data;
}
/**
* 是否打印错误信息
* @param boolean $showError
* @return $this
* */
public function setShowError($showError)
{
$this->showError = $showError;
return $this;
}
/**
* 设置$AccessKey
* @param string $AccessKey
* @return $this
* */
public function setAccessKey($AccessKey)
{
$this->AccessKey = $AccessKey;
return $this;
}
/**
* 设置$AccessKeySecret
* @param string $AccessKeySecret
* @return $this
* */
public function setAccessKeySecret($AccessKeySecret)
{
$this->AccessKeySecret = $AccessKeySecret;
return $this;
}
}