更新框架至5.1.35版本

This commit is contained in:
wispx
2019-03-05 16:04:00 +08:00
parent bc6080f1cc
commit e04ea3f9e1
14 changed files with 119 additions and 273 deletions
Generated
+21 -117
View File
@@ -18,13 +18,7 @@
"type": "zip",
"url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/e69f57916678458642ac9d2fd341ae78a56996c8",
"reference": "e69f57916678458642ac9d2fd341ae78a56996c8",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3"
@@ -65,13 +59,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-curl": "*",
@@ -167,13 +155,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
@@ -238,13 +220,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.5.0"
@@ -295,13 +271,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
"reference": "9f83dded91781a01c63574e387eaa769be769115",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.4.0",
@@ -368,13 +338,7 @@
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/0c41a36d4508d470e376498c1c0c527aa36a2d59",
"reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-ctype": "*",
@@ -440,13 +404,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -496,13 +454,7 @@
"type": "zip",
"url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/ca816d61a5412dd7a248119992b7d32687b10f86",
"reference": "ca816d61a5412dd7a248119992b7d32687b10f86",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"guzzle/guzzle": "~3.7",
@@ -548,13 +500,7 @@
"type": "zip",
"url": "https://api.github.com/repos/qiniu/php-sdk/zipball/88d11a5857ebc6871204e9be6ceec54bf5f381e6",
"reference": "88d11a5857ebc6871204e9be6ceec54bf5f381e6",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -605,13 +551,7 @@
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3"
@@ -651,13 +591,7 @@
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
"reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.9"
@@ -707,23 +641,17 @@
},
{
"name": "topthink/framework",
"version": "v5.1.34",
"version": "v5.1.35",
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
"reference": "7c8cd1ea2bd4683a6ef46af415334260c6e2cc15"
"reference": "c53c0c6132022a87e8ee9c4109939eaf9a8a7adb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/top-think/framework/zipball/7c8cd1ea2bd4683a6ef46af415334260c6e2cc15",
"reference": "7c8cd1ea2bd4683a6ef46af415334260c6e2cc15",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"url": "https://api.github.com/repos/top-think/framework/zipball/c53c0c6132022a87e8ee9c4109939eaf9a8a7adb",
"reference": "c53c0c6132022a87e8ee9c4109939eaf9a8a7adb",
"shasum": ""
},
"require": {
"php": ">=5.6.0",
@@ -760,7 +688,7 @@
"orm",
"thinkphp"
],
"time": "2019-01-30T06:38:38+00:00"
"time": "2019-03-03T00:44:44+00:00"
},
{
"name": "topthink/think-captcha",
@@ -774,13 +702,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-captcha/zipball/54c8a51552f99ff9ea89ea9c272383a8f738ceee",
"reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"topthink/framework": "5.1.*"
@@ -819,13 +741,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-image/zipball/8586cf47f117481c6d415b20f7dedf62e79d5512",
"reference": "8586cf47f117481c6d415b20f7dedf62e79d5512",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-gd": "*"
@@ -865,13 +781,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-installer/zipball/f5400a12c60e513911aef41fe443fa6920952675",
"reference": "f5400a12c60e513911aef41fe443fa6920952675",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0"
@@ -912,13 +822,7 @@
"type": "zip",
"url": "https://api.github.com/repos/upyun/php-sdk/zipball/1a2dd5ae31047956c733aef0f764f3a527d30628",
"reference": "1a2dd5ae31047956c733aef0f764f3a527d30628",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-curl": "*",
+1 -1
View File
@@ -20,7 +20,7 @@ use think\route\Dispatch;
*/
class App extends Container
{
const VERSION = '5.1.34 LTS';
const VERSION = '5.1.35 LTS';
/**
* 当前模块路径
+10
View File
@@ -437,6 +437,16 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
return $this->exists;
}
/**
* 判断模型是否为空
* @access public
* @return bool
*/
public function isEmpty()
{
return empty($this->data);
}
/**
* 保存当前数据对象
* @access public
+1 -1
View File
@@ -519,7 +519,7 @@ class Validate
if (isset($this->append[$field])) {
// 追加额外的验证规则
$rules = array_merge($rules, $this->append[$field]);
$rules = array_unique(array_merge($rules, $this->append[$field]));
}
$i = 0;
+1 -1
View File
@@ -454,7 +454,7 @@ abstract class Builder
$array[] = $key . ' ' . $exp . ' :' . $name;
}
$whereStr = '(' . implode($array, ' ' . strtoupper($logic) . ' ') . ')';
$whereStr = '(' . implode(' ' . strtoupper($logic) . ' ', $array) . ')';
} else {
$whereStr = $key . ' ' . $exp . ' ' . $value;
}
+1
View File
@@ -1655,6 +1655,7 @@ class Query
{
if (true === $option) {
$this->options = [];
$this->bind = [];
} elseif (is_string($option) && isset($this->options[$option])) {
unset($this->options[$option]);
}
+42 -6
View File
@@ -37,6 +37,10 @@ DECLARE
v_sql varchar;
v_rec RECORD;
v_key varchar;
v_conkey smallint[];
v_pk varchar[];
v_len smallint;
v_pos smallint := 1;
BEGIN
SELECT
pg_class.oid INTO v_oid
@@ -49,6 +53,31 @@ BEGIN
RETURN;
END IF;
SELECT
pg_constraint.conkey INTO v_conkey
FROM
pg_constraint
INNER JOIN pg_class ON pg_constraint.conrelid = pg_class.oid
INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid
INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid
WHERE
pg_class.relname = a_table_name
AND pg_constraint.contype = 'p';
v_len := array_length(v_conkey,1) + 1;
WHILE v_pos < v_len LOOP
SELECT
pg_attribute.attname INTO v_key
FROM pg_constraint
INNER JOIN pg_class ON pg_constraint.conrelid = pg_class.oid
INNER JOIN pg_attribute ON pg_attribute.attrelid = pg_class.oid AND pg_attribute.attnum = pg_constraint.conkey [ v_conkey[v_pos] ]
INNER JOIN pg_type ON pg_type.oid = pg_attribute.atttypid
WHERE pg_class.relname = a_table_name AND pg_constraint.contype = 'p';
v_pk := array_append(v_pk,v_key);
v_pos := v_pos + 1;
END LOOP;
v_sql='
SELECT
pg_attribute.attname AS fields_name,
@@ -83,12 +112,19 @@ BEGIN
v_ret.fields_not_null=v_rec.fields_not_null;
v_ret.fields_default=v_rec.fields_default;
v_ret.fields_comment=v_rec.fields_comment;
SELECT constraint_name INTO v_key FROM information_schema.key_column_usage WHERE table_schema=a_schema_name AND table_name=a_table_name AND column_name=v_rec.fields_name;
IF FOUND THEN
v_ret.fields_key_name=v_key;
ELSE
v_ret.fields_key_name='';
END IF;
v_ret.fields_key_name='';
v_len := array_length(v_pk,1) + 1;
v_pos := 1;
WHILE v_pos < v_len LOOP
IF v_rec.fields_name = v_pk[v_pos] THEN
v_ret.fields_key_name=v_pk[v_pos];
EXIT;
END IF;
v_pos := v_pos + 1;
END LOOP;
RETURN NEXT v_ret;
END LOOP;
RETURN ;
+6 -3
View File
@@ -16,11 +16,14 @@ use think\Facade;
/**
* @see \think\Config
* @mixin \think\Config
* @method array load(string $file, string $name = '') static 加载配置文件
* @method bool has(string $name) static 检测配置是否存在
* @method array pull(string $name) static 获取一级配置
* @method array pull(string $name) static 获取一级配置参数
* @method mixed get(string $name,mixed $default = null) static 获取配置参数
* @method mixed set(string $name, mixed $value = null) static 设置配置参数
* @method array reset(string $prefix ='') static 重置配置参数
* @method array set(mixed $name, mixed $value = null) static 设置配置参数
* @method array reset(string $name ='') static 重置配置参数
* @method void remove(string $name = '') static 移除配置
* @method void setYaconf(mixed $$yaconf) static 设置开启Yaconf 或者指定配置文件名
*/
class Config extends Facade
{
+1
View File
@@ -21,6 +21,7 @@ use think\Facade;
* @method \think\Log record(mixed $msg, string $type = 'info', array $context = []) static 记录日志信息
* @method \think\Log clear() static 清空日志信息
* @method \think\Log key(string $key) static 当前日志记录的授权key
* @method \think\Log close() static 关闭本次请求日志写入
* @method bool check(array $config) static 检查日志写入权限
* @method bool save() static 保存调试信息
* @method void write(mixed $msg, string $type = 'info', bool $force = false) static 实时写入日志信息
@@ -140,9 +140,13 @@ trait Conversion
// 过滤属性
if (!empty($this->visible)) {
$array = $this->parseAttr($this->visible, $visible);
$data = array_intersect_key($data, array_flip($array));
} elseif (!empty($this->hidden)) {
$array = $this->parseAttr($this->hidden, $hidden, false);
if (!empty($array)) {
$data = array_intersect_key($data, array_flip($array));
}
}
if (empty($array) && !empty($this->hidden)) {
$array = $this->parseAttr($this->hidden, $hidden);
$data = array_diff_key($data, array_flip($array));
}
@@ -187,10 +191,7 @@ trait Conversion
$item[$key] = $relation->append([$attr])->toArray();
} else {
$value = $this->getAttr($name, $item);
if (false !== $value) {
$item[$name] = $value;
}
$item[$name] = $this->getAttr($name, $item);
}
}
}
@@ -256,28 +257,18 @@ trait Conversion
* @access protected
* @param array $attrs 属性
* @param array $result 结果集
* @param bool $visible
* @return array
*/
protected function parseAttr($attrs, &$result, $visible = true)
protected function parseAttr($attrs, &$result)
{
$array = [];
foreach ($attrs as $key => $val) {
if (is_array($val)) {
if ($visible) {
$array[] = $key;
}
$result[$key] = $val;
} elseif (strpos($val, '.')) {
list($key, $name) = explode('.', $val);
if ($visible) {
$array[] = $key;
}
$result[$key][] = $name;
$result[$key][] = $name;
} else {
$array[] = $val;
}
@@ -194,8 +194,8 @@ class HasMany extends Relation
}
}
return $this->query
->whereExp($this->foreignKey, '=' . $this->parent->getTable() . '.' . $this->localKey)
return $this->query->alias($aggregate . '_table')
->whereExp($aggregate . '_table.' . $this->foreignKey, '=' . $this->parent->getTable() . '.' . $this->localKey)
->fetchSql()
->$aggregate($field);
}
@@ -151,10 +151,6 @@ class RuleGroup extends Rule
$method = strtolower($request->method());
$rules = $this->getMethodRules($method);
if (count($rules) == 0) {
return false;
}
if ($this->parent) {
// 合并分组参数
$this->mergeGroupOptions();
+1 -1
View File
@@ -279,7 +279,7 @@ class ClassLoader
*/
public function setApcuPrefix($apcuPrefix)
{
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
}
/**
+22 -118
View File
@@ -12,13 +12,7 @@
"type": "zip",
"url": "https://api.github.com/repos/aliyun/aliyun-oss-php-sdk/zipball/e69f57916678458642ac9d2fd341ae78a56996c8",
"reference": "e69f57916678458642ac9d2fd341ae78a56996c8",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3"
@@ -61,13 +55,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-curl": "*",
@@ -165,13 +153,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
@@ -238,13 +220,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.5.0"
@@ -297,13 +273,7 @@
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9f83dded91781a01c63574e387eaa769be769115",
"reference": "9f83dded91781a01c63574e387eaa769be769115",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.4.0",
@@ -372,13 +342,7 @@
"type": "zip",
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/0c41a36d4508d470e376498c1c0c527aa36a2d59",
"reference": "0c41a36d4508d470e376498c1c0c527aa36a2d59",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-ctype": "*",
@@ -446,13 +410,7 @@
"type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.0"
@@ -504,13 +462,7 @@
"type": "zip",
"url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/ca816d61a5412dd7a248119992b7d32687b10f86",
"reference": "ca816d61a5412dd7a248119992b7d32687b10f86",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"guzzle/guzzle": "~3.7",
@@ -558,13 +510,7 @@
"type": "zip",
"url": "https://api.github.com/repos/qiniu/php-sdk/zipball/88d11a5857ebc6871204e9be6ceec54bf5f381e6",
"reference": "88d11a5857ebc6871204e9be6ceec54bf5f381e6",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.3"
@@ -617,13 +563,7 @@
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"reference": "5601c8a83fbba7ef674a7369456d12f1e0d0eafa",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3"
@@ -665,13 +605,7 @@
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
"reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"php": ">=5.3.9"
@@ -722,24 +656,18 @@
},
{
"name": "topthink/framework",
"version": "v5.1.34",
"version_normalized": "5.1.34.0",
"version": "v5.1.35",
"version_normalized": "5.1.35.0",
"source": {
"type": "git",
"url": "https://github.com/top-think/framework.git",
"reference": "7c8cd1ea2bd4683a6ef46af415334260c6e2cc15"
"reference": "c53c0c6132022a87e8ee9c4109939eaf9a8a7adb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/top-think/framework/zipball/7c8cd1ea2bd4683a6ef46af415334260c6e2cc15",
"reference": "7c8cd1ea2bd4683a6ef46af415334260c6e2cc15",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"url": "https://api.github.com/repos/top-think/framework/zipball/c53c0c6132022a87e8ee9c4109939eaf9a8a7adb",
"reference": "c53c0c6132022a87e8ee9c4109939eaf9a8a7adb",
"shasum": ""
},
"require": {
"php": ">=5.6.0",
@@ -754,7 +682,7 @@
"sebastian/phpcpd": "2.*",
"squizlabs/php_codesniffer": "2.*"
},
"time": "2019-01-30T06:38:38+00:00",
"time": "2019-03-03T00:44:44+00:00",
"type": "think-framework",
"installation-source": "dist",
"notification-url": "https://packagist.org/downloads/",
@@ -792,13 +720,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-captcha/zipball/54c8a51552f99ff9ea89ea9c272383a8f738ceee",
"reference": "54c8a51552f99ff9ea89ea9c272383a8f738ceee",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"topthink/framework": "5.1.*"
@@ -839,13 +761,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-image/zipball/8586cf47f117481c6d415b20f7dedf62e79d5512",
"reference": "8586cf47f117481c6d415b20f7dedf62e79d5512",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-gd": "*"
@@ -887,13 +803,7 @@
"type": "zip",
"url": "https://api.github.com/repos/top-think/think-installer/zipball/f5400a12c60e513911aef41fe443fa6920952675",
"reference": "f5400a12c60e513911aef41fe443fa6920952675",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"composer-plugin-api": "^1.0"
@@ -936,13 +846,7 @@
"type": "zip",
"url": "https://api.github.com/repos/upyun/php-sdk/zipball/1a2dd5ae31047956c733aef0f764f3a527d30628",
"reference": "1a2dd5ae31047956c733aef0f764f3a527d30628",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
"shasum": ""
},
"require": {
"ext-curl": "*",