Commit 3dc041af authored by luhongguang's avatar luhongguang

update: 处理冲突

parents 4a77886f 9963de73
<?php
/**
* Created by PhpStorm.
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 1:44 下午
*/
namespace App\Models\wx\mysql;
use Api\PhpUtils\Mysql\MysqlBase;
class WxGroupChat extends MysqlBase
{
const TABLE_NAME = 'wx_group_chat';
const CONFIG_INDEX = 'goods';
const PRIMARY_KEY = 'id';
public static function getRecords($where, $columns = []): array
{
if (empty($columns)) {
$columns = '*';
}
return (array)self::select($columns, $where);
}
public static function updateRecord($colums, $where)
{
return self::update($colums, $where);
}
public static function save($data, $where = [])
{
if (empty($where)) {
return self::insert($data);
}
return self::update($data, $where);
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 1:45 下午
*/
namespace App\Models\wx\mysql;
use Api\PhpUtils\Mysql\MysqlBase;
class WxGroupChatUser extends MysqlBase
{
const TABLE_NAME = 'wx_group_chat_user';
const CONFIG_INDEX = 'goods';
const PRIMARY_KEY = 'id';
const STATUS_LEAVE = 0; // 状态: 退出群聊
const STATUS_NORMAL = 1; // 状态:正常
public static function getRecords($where, $columns = []): array
{
if (empty($columns)) {
$columns = '*';
}
return (array)self::select($columns, $where);
}
public static function updateRecord($columns, $where)
{
return self::update($columns, $where);
}
public static function save($data, $where = [])
{
if (empty($where)) {
return self::insert($data);
}
return self::update($data, $where);
}
}
<?php
/**
* Created by PhpStorm.
* User: pengfei@yidian-inc.com
* Date: 2021/9/27 8:18 下午
*/
use App\Base\Job;
use App\Services\wx\GroupChatService;
class WxgroupchatController extends Job
{
public function indexAction()
{
(new GroupChatService)->process();
}
}
\ No newline at end of file
...@@ -26,6 +26,7 @@ use App\Models\goods\mysql\LifeAccountShopNum; ...@@ -26,6 +26,7 @@ use App\Models\goods\mysql\LifeAccountShopNum;
use App\Models\goods\mysql\Ota; use App\Models\goods\mysql\Ota;
use App\Models\goods\mysql\PaySuccessGoodsCallbackRecord; use App\Models\goods\mysql\PaySuccessGoodsCallbackRecord;
use App\Models\goods\mysql\ErshouGoodsSku; use App\Models\goods\mysql\ErshouGoodsSku;
use App\Models\goods\mysql\PindanGoodsSku;
use App\Models\goods\mysql\PindanGoodsSnapshot; use App\Models\goods\mysql\PindanGoodsSnapshot;
use App\Models\goods\mysql\Shop; use App\Models\goods\mysql\Shop;
use App\Models\marketing\mysql\Distributor; use App\Models\marketing\mysql\Distributor;
...@@ -218,4 +219,35 @@ class ErshouGoodsService ...@@ -218,4 +219,35 @@ class ErshouGoodsService
GoodsService::addGoodsSkuPicRecord($skuId, $skuData); GoodsService::addGoodsSkuPicRecord($skuId, $skuData);
return $skuId; return $skuId;
} }
/**
* 二手商品商品详情
* @param $params
* @return array
* @throws GoodsException
*/
public static function ershouGoodsInfo($params)
{
$data = [];
$sku = ErshouGoodsSku::get("*", ["goods_sku_id" => $params["goods_sku_id"]]);
if (empty($sku)) {
throw new GoodsException(["cus" => 15]);
}
$data["goods_info"] = $sku;
$data["goods_info"]["original_price"] = empty($sku["original_price"]) ? '' : (string)($sku["original_price"] / 100);
$data["goods_info"]["price"] = $sku["price"] / 100;
$data["goods_info"]["desc_pic_url_list"] = [];
if (!empty($sku["desc_pic_url"])) {
$ksyun = GoodsService::getUrlList($sku["desc_pic_url"]);
$data["goods_info"]["desc_pic_url_list"] = $ksyun;
$strList = explode(",", $sku["desc_pic_url"]);
$shareStr = $strList[0];
$shareRes = Ks3Api::picEncryptUrl($shareStr, 500, 400);
$shareUrl = empty($shareRes["response"]["data"]["url"]) ? "" : $shareRes["response"]["data"]["url"];
$data["goods_info"]["share_url"] = $shareUrl;
}
return $data;
}
} }
\ No newline at end of file
...@@ -1127,16 +1127,16 @@ class GoodsService ...@@ -1127,16 +1127,16 @@ class GoodsService
{ {
$goodsSukParams = GoodsSkuId::getGoodsSkuIdParams($params["goods_sku_id"]); $goodsSukParams = GoodsSkuId::getGoodsSkuIdParams($params["goods_sku_id"]);
if (!empty($goodsSukParams)) { if (!empty($goodsSukParams)) {
if (isset($goodsSukParams["table_tag"]) && ($goodsSukParams["table_tag"] == GoodsSkuId::TABLE_TAG_PINDAN if (isset($goodsSukParams["table_tag"]) && ($goodsSukParams["table_tag"] == GoodsSkuId::TABLE_TAG_PINDAN)) {
|| $goodsSukParams["category_1_id"] == "00")) {
return MarketingPindanGoodsService::pindanGoodsInfo($params); return MarketingPindanGoodsService::pindanGoodsInfo($params);
} elseif(isset($goodsSukParams["table_tag"]) && ($goodsSukParams["table_tag"] == GoodsSkuId::TABLE_TAG_ERSHOU)) {
return ErshouGoodsService::ershouGoodsInfo($params);
} else { } else {
return self::generalGoodsInfo($params); return self::generalGoodsInfo($params);
} }
} else { } else {
throw new GoodsException(["cus" => 41]); throw new GoodsException(["cus" => 41]);
} }
} }
/** /**
......
<?php
/**
* Created by PhpStorm.
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 10:57 上午
*/
namespace App\Services\wx;
use Api\PhpUtils\EasyWechat\AppConfig;
use Exception;
use EasyWeChat\Factory;
use Api\PhpUtils\Log\JobLog;
use App\Models\wx\mysql\WxGroupChat;
use App\Models\wx\mysql\WxGroupChatUser;
class GroupChatService
{
public $wxApp;
public $pageSize = 100;
public $ownerUserIds = [];
public $departmentId; // 部门id
/**
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
public function __construct()
{
$this->wxApp = Factory::work(AppConfig::getCorpConfig());
$this->loadConfig();
}
/**
* Notes: 处理微信群
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 7:36 下午
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function process()
{
$nextCursor = ''; // 下一页游标,首次为空,请求接口会返回
while (true) {
$result = $this->getGroupChatList($nextCursor);
if (empty($result['group_chat_list'])) {
break;
}
$groupChatList = $result['group_chat_list'];
$existChatIds = $this->getWxGroupChatIds(array_column($groupChatList, 'chat_id'));
foreach ($groupChatList as $group) {
try {
$groupChat = $this->getGroupChatDetail($group['chat_id']);
$chatInfo = $this->getFormatGroupChat($group, $groupChat);
$this->processGroupChat($existChatIds, $chatInfo);
if (!empty($groupChat['group_chat']['member_list'])) {
$this->processGroupChatUser($group['chat_id'], $groupChat['group_chat']['member_list']);
}
$this->loggerInfo("处理成功:chat_id={$group['chat_id']},name={$chatInfo['name']},memberCount=" . count($groupChat['group_chat']['member_list']));
} catch (Exception $e) {
$this->loggerError("处理失败:chat_id={$group['chat_id']},msg=" . $e->getMessage() . ',code=' . $e->getCode() . ',line=' . $e->getLine());
}
}
if (empty($result['next_cursor'])) {
break;
}
$nextCursor = $result['next_cursor'];
}
}
/**
* Notes: 处理群
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:04 下午
* @param $existChatIds
* @param $groupChat
*/
private function processGroupChat($existChatIds, $groupChat)
{
$where = [];
if (isset($existChatIds[$groupChat['chat_id']])) {
$where = ['chat_id' => $groupChat['chat_id']];
}
WxGroupChat::save($groupChat, $where);
}
/**
* Notes: 处理群成员
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:19 下午
* @param $chatId
* @param $memberList
*/
private function processGroupChatUser($chatId, $memberList)
{
$insertMember = [];
$existUserIds = $this->getWxGroupChatUserIds($chatId, array_column($memberList, 'userid'));
// 重置将该群成员状态
WxGroupChatUser::updateRecord(
['status' => WxGroupChatUser::STATUS_LEAVE],
['chat_id' => $chatId, 'status' => WxGroupChatUser::STATUS_NORMAL]
);
foreach ($memberList as $member) {
$member = $this->getFormatGroupChatUser($chatId, $member);
if (isset($existUserIds[$member['user_id']])) {
WxGroupChatUser::save($member, ['chat_id' => $member['chat_id'], 'user_id' => $member['user_id']]);
} else {
$insertMember[] = $member;
}
}
if (!empty($insertMember)) {
WxGroupChatUser::save($insertMember);
}
}
/**
* Notes: 获取组装群组成员数据
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:20 下午
* @param $chatId
* @param $member
* @return array
*/
private function getFormatGroupChatUser($chatId, $member): array
{
return [
'chat_id' => $chatId,
'user_id' => $member['userid'],
'name' => $member['name'] ?? '',
'status' => WxGroupChatUser::STATUS_NORMAL,
'type' => $member['type'],
'join_time' => $member['join_time'],
'join_scene' => $member['join_scene'],
'invitor_user_id' => !empty($member['invitor']['user_id']) ? $member['invitor']['user_id'] : '',
'group_nickname' => $member['group_nickname'] ?? ''
];
}
/**
* Notes: 获取组装群组数据
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:10 下午
* @param $group
* @param $groupDetail
* @return array
*/
private function getFormatGroupChat($group, $groupDetail): array
{
$groupChatInfo = $groupDetail['group_chat'];
return [
'chat_id' => $groupChatInfo['chat_id'],
'name' => $groupChatInfo['name'],
'notice' => $groupChatInfo['notice'] ?? '',
'owner' => $groupChatInfo['owner'] ?? '',
'status' => $group['status'],
'chat_create_time' => $groupChatInfo['create_time'],
];
}
/**
* Notes: 获取群id
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:03 下午
* @param $chatIds
* @return array
*/
private function getWxGroupChatIds($chatIds): array
{
$chatList = WxGroupChat::getRecords(['chat_id' => $chatIds], ['chat_id']);
return !empty($chatList) ? array_column($chatList, null, 'chat_id') : [];
}
/**
* Notes: 获取群成员id
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 3:03 下午
* @param $chatId
* @param $userIds
* @return array
*/
private function getWxGroupChatUserIds($chatId, $userIds): array
{
$userList = WxGroupChatUser::getRecords(['chat_id' => $chatId, 'user_id' => $userIds], ['user_id']);
return !empty($userList) ? array_column($userList, null, 'user_id') : [];
}
/**
* Notes: 获取部门下成员
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 7:35 下午
* @return array
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
private function getGroupChatOwnerList(): array
{
if (empty($this->departmentId)) {
return [];
}
return (array)$this->wxApp->user->getDepartmentUsers($this->departmentId, true);
}
/**
* Notes: 获取群详情
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 7:35 下午
* @param $chatId
* @return array
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
private function getGroupChatDetail($chatId): array
{
return (array)$this->wxApp->external_contact->getGroupChat($chatId, 1);
}
/**
* Notes: 获取群列表
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 7:36 下午
* @param string $nextCursor
* @return array
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
private function getGroupChatList(string $nextCursor = ''): array
{
$params = [
'limit' => $this->pageSize
];
// 群主过滤
if (!empty($this->ownerUserIds)) {
$params['owner_filter']['userid_list'] = $this->ownerUserIds;
}
if (!empty($nextCursor)) {
$params['cursor'] = $nextCursor;
}
return (array)$this->wxApp->external_contact->getGroupChats($params);
}
/**
* Notes: 加载配置
* User: pengfei@yidian-inc.com
* Date: 2021/9/28 7:36 下午
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
*/
private function loadConfig()
{
$this->departmentId = config('wechat', 'corp.secondary_market_department_id');
$result = $this->getGroupChatOwnerList();
$this->ownerUserIds = array_column($result['userlist'], 'userid');
}
/**
* Notes: 记录 info 日志
* User: pengfei@yidian-inc.com
* Date: 2021/9/3 4:10 下午
* @param $log
*/
private function loggerInfo($log)
{
JobLog::getInstance()->info('colonel_distributor_order', $log)->output();
}
/**
* Notes: 记录 error 日志
* User: pengfei@yidian-inc.com
* Date: 2021/9/3 4:10 下午
* @param $log
*/
private function loggerError($log)
{
JobLog::getInstance()->error('colonel_distributor_order', $log, null, 'bp-server@yidian-inc.com')->output();
}
}
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
"php": "7.2.*", "php": "7.2.*",
"ext-json": "*", "ext-json": "*",
"api/php_services":"1.0.16", "api/php_services":"1.0.16",
"api/php_utils":"1.0.18", "api/php_utils":"1.0.21",
"ext-openssl": "*" "ext-openssl": "*"
}, },
"minimum-stability": "dev", "minimum-stability": "dev",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "a6ce79abff3778226d347be8c1ba2b8b", "content-hash": "1cc7a8fdcdb85a169f5819e138801de0",
"packages": [ "packages": [
{ {
"name": "api/php_services", "name": "api/php_services",
...@@ -30,11 +30,11 @@ ...@@ -30,11 +30,11 @@
}, },
{ {
"name": "api/php_utils", "name": "api/php_utils",
"version": "v1.0.18", "version": "v1.0.21",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.yidian-inc.com:8021/bp/php_utils.git", "url": "https://git.yidian-inc.com:8021/bp/php_utils.git",
"reference": "33b06adcf6eae99ada39b67c9fb28802a17cb528" "reference": "82fc4f6fb8db04525404f8c8d8da0969dd911a9f"
}, },
"require": { "require": {
"elasticsearch/elasticsearch": "~7.0", "elasticsearch/elasticsearch": "~7.0",
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
} }
}, },
"description": "bp api php_utils", "description": "bp api php_utils",
"time": "2021-09-27T11:58:04+00:00" "time": "2021-10-11T03:14:07+00:00"
}, },
{ {
"name": "bacon/bacon-qr-code", "name": "bacon/bacon-qr-code",
...@@ -168,13 +168,7 @@ ...@@ -168,13 +168,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/mingyoung/easywechat-composer/zipball/3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd", "url": "https://api.github.com/repos/mingyoung/easywechat-composer/zipball/3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd",
"reference": "3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd", "reference": "3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"composer-plugin-api": "^1.0 || ^2.0", "composer-plugin-api": "^1.0 || ^2.0",
...@@ -538,12 +532,12 @@ ...@@ -538,12 +532,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "c1dd809c8f51a477701052f4b9e5b4bb5c1061aa" "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/c1dd809c8f51a477701052f4b9e5b4bb5c1061aa", "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
"reference": "c1dd809c8f51a477701052f4b9e5b4bb5c1061aa", "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -556,7 +550,7 @@ ...@@ -556,7 +550,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -599,7 +593,7 @@ ...@@ -599,7 +593,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/master" "source": "https://github.com/guzzle/promises/tree/1.5.0"
}, },
"funding": [ "funding": [
{ {
...@@ -615,7 +609,7 @@ ...@@ -615,7 +609,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-05T15:38:28+00:00" "time": "2021-10-07T13:05:22+00:00"
}, },
{ {
"name": "guzzlehttp/psr7", "name": "guzzlehttp/psr7",
...@@ -623,12 +617,12 @@ ...@@ -623,12 +617,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "9d006741ba865a45adccfac45d8e1053086a5a3f" "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9d006741ba865a45adccfac45d8e1053086a5a3f", "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"reference": "9d006741ba865a45adccfac45d8e1053086a5a3f", "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -711,7 +705,21 @@ ...@@ -711,7 +705,21 @@
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.x" "source": "https://github.com/guzzle/psr7/tree/1.x"
}, },
"time": "2021-09-05T19:11:18+00:00" "funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"time": "2021-10-05T13:56:00+00:00"
}, },
{ {
"name": "khanamiryan/qrcode-detector-decoder", "name": "khanamiryan/qrcode-detector-decoder",
...@@ -838,19 +846,13 @@ ...@@ -838,19 +846,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "437e7a1c50044b92773b361af77620efb76fff59" "reference": "d1c28292689764504cbaab2beec8ddd0a54bcc1c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/437e7a1c50044b92773b361af77620efb76fff59", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d1c28292689764504cbaab2beec8ddd0a54bcc1c",
"reference": "437e7a1c50044b92773b361af77620efb76fff59", "reference": "d1c28292689764504cbaab2beec8ddd0a54bcc1c",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2", "php": ">=7.2",
...@@ -865,7 +867,7 @@ ...@@ -865,7 +867,7 @@
"elasticsearch/elasticsearch": "^7", "elasticsearch/elasticsearch": "^7",
"graylog2/gelf-php": "^1.4.2", "graylog2/gelf-php": "^1.4.2",
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4 || ^3",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpspec/prophecy": "^1.6.1", "phpspec/prophecy": "^1.6.1",
"phpstan/phpstan": "^0.12.91", "phpstan/phpstan": "^0.12.91",
...@@ -924,7 +926,7 @@ ...@@ -924,7 +926,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/Seldaek/monolog/issues", "issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.3.4" "source": "https://github.com/Seldaek/monolog/tree/main"
}, },
"funding": [ "funding": [
{ {
...@@ -936,7 +938,7 @@ ...@@ -936,7 +938,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-15T11:27:21+00:00" "time": "2021-10-02T20:05:18+00:00"
}, },
{ {
"name": "myclabs/php-enum", "name": "myclabs/php-enum",
...@@ -1010,13 +1012,7 @@ ...@@ -1010,13 +1012,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/overtrue/socialite/zipball/ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec", "url": "https://api.github.com/repos/overtrue/socialite/zipball/ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec",
"reference": "ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec", "reference": "ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
...@@ -1071,19 +1067,13 @@ ...@@ -1071,19 +1067,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/w7corp/easywechat.git", "url": "https://github.com/w7corp/easywechat.git",
"reference": "00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54" "reference": "0907070e17e4420c4ea73e6daac492ac74add9b9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/w7corp/easywechat/zipball/00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54", "url": "https://api.github.com/repos/w7corp/easywechat/zipball/0907070e17e4420c4ea73e6daac492ac74add9b9",
"reference": "00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54", "reference": "0907070e17e4420c4ea73e6daac492ac74add9b9",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"easywechat-composer/easywechat-composer": "^1.1", "easywechat-composer/easywechat-composer": "^1.1",
...@@ -1154,7 +1144,7 @@ ...@@ -1154,7 +1144,7 @@
"type": "patreon" "type": "patreon"
} }
], ],
"time": "2021-06-30T12:54:00+00:00" "time": "2021-09-28T11:01:33+00:00"
}, },
{ {
"name": "perftools/php-profiler", "name": "perftools/php-profiler",
...@@ -1228,11 +1218,6 @@ ...@@ -1228,11 +1218,6 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4",
"reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4",
"shasum": ""
=======
"url": "https://api.github.com/repos/silexphp/Pimple/zipball/86406047271859ffc13424a048541f4531f53601", "url": "https://api.github.com/repos/silexphp/Pimple/zipball/86406047271859ffc13424a048541f4531f53601",
"reference": "86406047271859ffc13424a048541f4531f53601", "reference": "86406047271859ffc13424a048541f4531f53601",
"shasum": "", "shasum": "",
...@@ -1242,7 +1227,6 @@ ...@@ -1242,7 +1227,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -1293,11 +1277,6 @@ ...@@ -1293,11 +1277,6 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
=======
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": "", "shasum": "",
...@@ -1307,7 +1286,6 @@ ...@@ -1307,7 +1286,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
...@@ -1354,11 +1332,6 @@ ...@@ -1354,11 +1332,6 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
=======
"url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf", "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
"reference": "8622567409010282b7aeebe4bb841fe98b58dcaf", "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
"shasum": "", "shasum": "",
...@@ -1368,7 +1341,6 @@ ...@@ -1368,7 +1341,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.2.0" "php": ">=7.2.0"
...@@ -1416,13 +1388,7 @@ ...@@ -1416,13 +1388,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/aa4f89e91c423b516ff226c50dc83f824011c253", "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/aa4f89e91c423b516ff226c50dc83f824011c253",
"reference": "aa4f89e91c423b516ff226c50dc83f824011c253", "reference": "aa4f89e91c423b516ff226c50dc83f824011c253",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.0" "php": ">=7.2.0"
...@@ -1475,13 +1441,7 @@ ...@@ -1475,13 +1441,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", "url": "https://api.github.com/repos/php-fig/http-message/zipball/efd67d1dc14a7ef4fc4e518e7dee91c271d524e4",
"reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4", "reference": "efd67d1dc14a7ef4fc4e518e7dee91c271d524e4",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
...@@ -1535,13 +1495,7 @@ ...@@ -1535,13 +1495,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11", "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
...@@ -1585,19 +1539,13 @@ ...@@ -1585,19 +1539,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/simple-cache.git", "url": "https://github.com/php-fig/simple-cache.git",
"reference": "5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474" "reference": "66e27efc65ddef47d3008c243a235ab9359b5754"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474", "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/66e27efc65ddef47d3008c243a235ab9359b5754",
"reference": "5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474", "reference": "66e27efc65ddef47d3008c243a235ab9359b5754",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
...@@ -1621,7 +1569,7 @@ ...@@ -1621,7 +1569,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interfaces for simple caching", "description": "Common interfaces for simple caching",
...@@ -1635,7 +1583,7 @@ ...@@ -1635,7 +1583,7 @@
"support": { "support": {
"source": "https://github.com/php-fig/simple-cache/tree/master" "source": "https://github.com/php-fig/simple-cache/tree/master"
}, },
"time": "2020-04-21T06:43:17+00:00" "time": "2021-10-06T11:02:22+00:00"
}, },
{ {
"name": "ralouphie/getallheaders", "name": "ralouphie/getallheaders",
...@@ -1649,13 +1597,7 @@ ...@@ -1649,13 +1597,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822", "reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.6" "php": ">=5.6"
...@@ -1699,13 +1641,7 @@ ...@@ -1699,13 +1641,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/reactphp/promise/zipball/a9752a861e21c0fe0b380c9f9e55beddc0ed7d31", "url": "https://api.github.com/repos/reactphp/promise/zipball/a9752a861e21c0fe0b380c9f9e55beddc0ed7d31",
"reference": "a9752a861e21c0fe0b380c9f9e55beddc0ed7d31", "reference": "a9752a861e21c0fe0b380c9f9e55beddc0ed7d31",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.4.0" "php": ">=5.4.0"
...@@ -1759,19 +1695,13 @@ ...@@ -1759,19 +1695,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "772bc130c5ed31bd5616c4806145b73b07b8c149" "reference": "ccf2fb68a8ac525c2f00dcf81b79237b569dbc87"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/772bc130c5ed31bd5616c4806145b73b07b8c149", "url": "https://api.github.com/repos/symfony/cache/zipball/ccf2fb68a8ac525c2f00dcf81b79237b569dbc87",
"reference": "772bc130c5ed31bd5616c4806145b73b07b8c149", "reference": "ccf2fb68a8ac525c2f00dcf81b79237b569dbc87",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -1785,7 +1715,7 @@ ...@@ -1785,7 +1715,7 @@
"symfony/var-exporter": "^4.4|^5.0|^6.0" "symfony/var-exporter": "^4.4|^5.0|^6.0"
}, },
"conflict": { "conflict": {
"doctrine/dbal": "<2.10", "doctrine/dbal": "<2.13",
"symfony/dependency-injection": "<4.4", "symfony/dependency-injection": "<4.4",
"symfony/http-kernel": "<4.4", "symfony/http-kernel": "<4.4",
"symfony/var-dumper": "<4.4" "symfony/var-dumper": "<4.4"
...@@ -1798,7 +1728,7 @@ ...@@ -1798,7 +1728,7 @@
"require-dev": { "require-dev": {
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/cache": "^1.6|^2.0", "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.10|^3.0", "doctrine/dbal": "^2.13|^3.0",
"predis/predis": "^1.1", "predis/predis": "^1.1",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
"symfony/config": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0",
...@@ -1854,7 +1784,7 @@ ...@@ -1854,7 +1784,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-26T19:04:13+00:00" "time": "2021-10-06T07:48:19+00:00"
}, },
{ {
"name": "symfony/cache-contracts", "name": "symfony/cache-contracts",
...@@ -1866,11 +1796,6 @@ ...@@ -1866,11 +1796,6 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/reactphp/promise/zipball/a9752a861e21c0fe0b380c9f9e55beddc0ed7d31",
"reference": "a9752a861e21c0fe0b380c9f9e55beddc0ed7d31",
"shasum": ""
=======
"url": "https://api.github.com/repos/symfony/cache-contracts/zipball/c385af13d628eb4fc25b017f332c8bcc55bd0d95", "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/c385af13d628eb4fc25b017f332c8bcc55bd0d95",
"reference": "c385af13d628eb4fc25b017f332c8bcc55bd0d95", "reference": "c385af13d628eb4fc25b017f332c8bcc55bd0d95",
"shasum": "", "shasum": "",
...@@ -1880,7 +1805,6 @@ ...@@ -1880,7 +1805,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -1949,7 +1873,7 @@ ...@@ -1949,7 +1873,7 @@
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "dev-main", "version": "2.5.x-dev",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
...@@ -1959,18 +1883,11 @@ ...@@ -1959,18 +1883,11 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"default-branch": true,
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
...@@ -2033,13 +1950,7 @@ ...@@ -2033,13 +1950,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ac2f062e33c4bb8338cf01fd981baed0028f46cb", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/ac2f062e33c4bb8338cf01fd981baed0028f46cb",
"reference": "ac2f062e33c4bb8338cf01fd981baed0028f46cb", "reference": "ac2f062e33c4bb8338cf01fd981baed0028f46cb",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -2124,13 +2035,7 @@ ...@@ -2124,13 +2035,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -2203,15 +2108,10 @@ ...@@ -2203,15 +2108,10 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "65808acd52ee65add91353cde5cb432021a9ca43" "reference": "2561c6bf1835db30b129788ba1143bea1f49849c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": ""
=======
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/65808acd52ee65add91353cde5cb432021a9ca43", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/65808acd52ee65add91353cde5cb432021a9ca43",
"reference": "65808acd52ee65add91353cde5cb432021a9ca43", "reference": "65808acd52ee65add91353cde5cb432021a9ca43",
"shasum": "", "shasum": "",
...@@ -2221,7 +2121,6 @@ ...@@ -2221,7 +2121,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -2280,7 +2179,7 @@ ...@@ -2280,7 +2179,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-14T13:02:56+00:00" "time": "2021-10-04T18:34:22+00:00"
}, },
{ {
"name": "symfony/options-resolver", "name": "symfony/options-resolver",
...@@ -2363,9 +2262,6 @@ ...@@ -2363,9 +2262,6 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f24ae462b1d60c333df104f0b81ec7d0e12f6e9f", "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f24ae462b1d60c333df104f0b81ec7d0e12f6e9f",
"reference": "f24ae462b1d60c333df104f0b81ec7d0e12f6e9f", "reference": "f24ae462b1d60c333df104f0b81ec7d0e12f6e9f",
<<<<<<< HEAD
"shasum": ""
=======
"shasum": "", "shasum": "",
"mirrors": [ "mirrors": [
{ {
...@@ -2373,7 +2269,6 @@ ...@@ -2373,7 +2269,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
...@@ -2940,12 +2835,12 @@ ...@@ -2940,12 +2835,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/property-info.git", "url": "https://github.com/symfony/property-info.git",
"reference": "903f3f3f6a360bc4739f8390e5031acc70d9cd9f" "reference": "505502817d5caafbfca3efb25ae720122d9ffdcd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/property-info/zipball/903f3f3f6a360bc4739f8390e5031acc70d9cd9f", "url": "https://api.github.com/repos/symfony/property-info/zipball/505502817d5caafbfca3efb25ae720122d9ffdcd",
"reference": "903f3f3f6a360bc4739f8390e5031acc70d9cd9f", "reference": "505502817d5caafbfca3efb25ae720122d9ffdcd",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -3022,7 +2917,7 @@ ...@@ -3022,7 +2917,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-09-07T15:45:17+00:00" "time": "2021-10-04T18:34:22+00:00"
}, },
{ {
"name": "symfony/psr-http-message-bridge", "name": "symfony/psr-http-message-bridge",
...@@ -3030,19 +2925,13 @@ ...@@ -3030,19 +2925,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git", "url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "d558dcde0b4f6a808f66702abd3c1617572f621b" "reference": "824711c9099e7c6808041e1144eaeac5285e4a67"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d558dcde0b4f6a808f66702abd3c1617572f621b", "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/824711c9099e7c6808041e1144eaeac5285e4a67",
"reference": "d558dcde0b4f6a808f66702abd3c1617572f621b", "reference": "824711c9099e7c6808041e1144eaeac5285e4a67",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.1", "php": ">=7.1",
...@@ -3117,7 +3006,7 @@ ...@@ -3117,7 +3006,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2021-08-04T21:33:41+00:00" "time": "2021-10-06T15:48:45+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
...@@ -3131,13 +3020,7 @@ ...@@ -3131,13 +3020,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/56b990c18120c91eaf0d38a93fabfa2a1f7fa413", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/56b990c18120c91eaf0d38a93fabfa2a1f7fa413",
"reference": "56b990c18120c91eaf0d38a93fabfa2a1f7fa413", "reference": "56b990c18120c91eaf0d38a93fabfa2a1f7fa413",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -3217,11 +3100,6 @@ ...@@ -3217,11 +3100,6 @@
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
<<<<<<< HEAD
"url": "https://api.github.com/repos/symfony/string/zipball/fa2c5cc3f7dac23d87429652fe0daf28d65cbd5b",
"reference": "fa2c5cc3f7dac23d87429652fe0daf28d65cbd5b",
"shasum": ""
=======
"url": "https://api.github.com/repos/symfony/string/zipball/412eda2039ad5466f823c3696c0c309e6c140086", "url": "https://api.github.com/repos/symfony/string/zipball/412eda2039ad5466f823c3696c0c309e6c140086",
"reference": "412eda2039ad5466f823c3696c0c309e6c140086", "reference": "412eda2039ad5466f823c3696c0c309e6c140086",
"shasum": "", "shasum": "",
...@@ -3231,7 +3109,6 @@ ...@@ -3231,7 +3109,6 @@
"preferred": true "preferred": true
} }
] ]
>>>>>>> dev_ershou_20210927
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -3314,13 +3191,7 @@ ...@@ -3314,13 +3191,7 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-exporter/zipball/b6e4ed5f511453d65e263ea475ff95d86520b637", "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b6e4ed5f511453d65e263ea475ff95d86520b637",
"reference": "b6e4ed5f511453d65e263ea475ff95d86520b637", "reference": "b6e4ed5f511453d65e263ea475ff95d86520b637",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
......
...@@ -7,6 +7,7 @@ class GoodsSkuId ...@@ -7,6 +7,7 @@ class GoodsSkuId
{ {
const TABLE_TAG_GENERAL = "000";//普通表 goods_sku 商品 const TABLE_TAG_GENERAL = "000";//普通表 goods_sku 商品
const TABLE_TAG_PINDAN = "001";//接龙表 pindan_goods_sku 商品 const TABLE_TAG_PINDAN = "001";//接龙表 pindan_goods_sku 商品
const TABLE_TAG_ERSHOU = "002";//二手商品表 ershou_goods_sku 商品
/** /**
* 生成加密后的 sku_id * 生成加密后的 sku_id
......
...@@ -229,6 +229,106 @@ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFOU3D4aULZuJ3IyRGmPhwn5g ...@@ -229,6 +229,106 @@ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDCFOU3D4aULZuJ3IyRGmPhwn5g
zIcDvT2EEZMJ+ePgi0Oax/P3z25m5758okGs1lrS93vDWO7lbsgQn5mnuKuqmuj6 zIcDvT2EEZMJ+ePgi0Oax/P3z25m5758okGs1lrS93vDWO7lbsgQn5mnuKuqmuj6
M3BP/vOildi+3oTZcjQTV2deebIrhW4p96DvTqQ7ixVAEi4of3XoITA00J8hfNy9 M3BP/vOildi+3oTZcjQTV2deebIrhW4p96DvTqQ7ixVAEi4of3XoITA00J8hfNy9
jDprGYGJ5yeTuRRHlQIDAQAB jDprGYGJ5yeTuRRHlQIDAQAB
-----END PUBLIC KEY-----';
/**
* 商户系统配送员小程序 SERVER端私钥与客户端公钥
*/
const MERCHANT_PUB_DELIVERER_PRIVATE_KEY_STR = '-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAM0f2QpMH7WZRVfY
ObD8Z8gUfLPnx9+B7PXxDCLnFbjz+tDKGHmF5r9K7BLRqiIWz4R6czbjxINQiH88
kRwXMXC6X0AOf9rV0kDJErN2d+lHkOuxMWDbPhYYBsUbUWqUfspZOeohB6UHTYeY
a82GOfBDpWdG4WLgUn4PrIHVfM4XAgMBAAECgYEAk7DRofNrhWKFJhm+eCtUQiBW
JWbGZ6xxxCc5uMuvvUqWFczdUGpT2PoF/grON9s6sUVFPYlDjdTnYs1mIdalNh2P
puYlvYdluA78uNDBpOEINR5RYOJbWJFAno2qzi19kUhbxNlfDsfEo/y9i+vyz/PU
xM/Q48DYsGYVcHVJtHECQQD1CAlJrWYWLkUmk9ENKmwam/JKd8Uz1r0HW2LPaV2B
EeKLK9hoTSK3KC4nkIkANFazi5Z1UHi3ztIlRvBV+qNZAkEA1k5+PIPsGk438tP/
E1v3JxS4yLUQ5ly3Aq1DHFub8pDzr8E7DNjeJZJnMngO9ol6CfKLYMWZ8qDtrnAl
BEz+7wJBAO4spJKISP3wdej8r6yjercWtJnr97Te25kGHHLN0US/dLygntcrez4b
gVmV5YVcWpZlbZeU4/KOx7fST5TTbukCQAdyILavirN7Rjxcmz8r8dFcyfLHP7gR
PpaMOImysR9jY+QWXZvbqRQ7GvTI8RQlwKS51ZfeJbQlXTyzTsXweucCQFkjMlaY
dh8zRYwQ9rmHOMYMC5yZCpXuy7uJCd4r7E2f9QNF9yWGxDLm7lfRyBFXqYCzcD7p
DHGH8yiUHYbGVbo=
-----END PRIVATE KEY-----';
const MERCHANT_PUB_DELIVERER_PUBLIC_KEY_STR = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCf7Wy+LXurjF13cEUStvkfNOim
UkZmOjYiarYb612Htmlo8UybeAc1FhBe7IbqlRNev1kOfWBAfbtFjOKwuSVnmzNI
59Kvzzeg2hUj9z6rneuTw2qz3OdhrxXXA4wP7Ed6RyMPfIupwo4XDd8lCotH+ACJ
Kurbi/FSMWuJ/b4ZMwIDAQAB
-----END PUBLIC KEY-----';
/**
* 商户系统配送员小程序-测试 SERVER端私钥与客户端公钥
*/
const TEST_MERCHANT_PUB_DELIVERER_PRIVATE_KEY_STR = '-----BEGIN PRIVATE KEY-----
MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANZ/GQ5zzKBmTMno
wlkg3OBU55z39vnNuKGf/DyrdS39tWBEKzZCPdigu/xlcnbIChD8WczkHMSFexhN
3kjGqHCUNHL5Tm50/XjmBIgEm7wKls6qLyEMiThrJo9jvzttkHzI1R2AUpG5l6a4
0sDpnn2ksKoLniAsjDmKCeESiLlJAgMBAAECgYEAm/XmHiAM1UQM6XKYfX3rnCGg
Fv4lUhVG/h35pZN1rG8hBlIKqXUYyv50MV0CEWP6Dceu88+ZKzty+YUE7x2jMoOG
J7XAvrayz0gDRaoPyhdUa0bBTSy8C53Vbxl1+iNj5A2+Cac9ovcNXbevl/+xLjvh
bq171Jj5J1FcdrGypgECQQDs5f5RsQ4Kqzul4/SFTi7W74q9BYV+HbmENO5ZK/WZ
xShvx4mM6OieNCLn/f8bIdV1Ddpg6nTMr3Pnl+m6ppFRAkEA58qwPp3NzEgxdZQX
u/V9APJxGdtYOE5wxg9ScKSS28b93ei6MdIr/lrqRTALaSNLeez6WZwgrebIzSqv
utrqeQJBAJFGoeV7DL9iLtwWpRcy0OqiT5SHVEv48pGu3BP3L1AzZg7WcPXmxvBt
zJI0Y0NCRmLYMfmJDkOPvSZjNMRv7WECQQCrjYdeALuFW1VH2aCrW2j2X3m4EnC7
08qBvGtetV+ATEouiIXuQ8iNy8oiBQoc+aNuDSfJVNWW//1UZCiF2mq5AkBMWcUF
9y7N06BE7GPqj7kLoHcSnhC05jJent058hpulAKWkLiiuOF6NqFsoWB86xyNmckt
3Db3EWDzVlc1v2io
-----END PRIVATE KEY-----';
const TEST_MERCHANT_PUB_DELIVERER_PUBLIC_KEY_STR = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCi2r9ZrCNbO6ZKjSu771CzYHXm
xsGfVHVSPwpw2AyOWJWEWBuGAc+ovlpORwSqnU1StPa92t7c4lt3P96httWM6iE0
sWCBGxzzwcsO4novU+Omo/bcgJw5y9EX7V8rkk/lYbGxZbBhcq9C5xyhdi8Qb1WZ
yexmKxL97vSWL8f4uwIDAQAB
-----END PUBLIC KEY-----';
/**
* 商户系统二手小程序 SERVER端私钥与客户端公钥
*/
const MERCHANT_PUB_IDLE_PRIVATE_KEY_STR = '-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAKB0bRSmYGZnQhWN
KJB57NSBGQHcj3XJ/VwmUZEX10IG8OWqONYDyNc12XmWqz9xrfqETt4J6yk0uPN1
uDT0Cfs28aFSxHJ2tA6XZZ33/5lIbYZ21vSWe5Oo4GRErdWK+ED7Ms/il7Hp8sCm
VFaEjYkdiqrGTOhCm3AqeXj7aV+hAgMBAAECgYAW5EVjutDqCzVMadUtt5doQfrV
XyhAf87bxMPCVYpqax8XRQ/SyLtwqMgcJrjL1mYh5Zpy5ytbt5/jbBoZw+9gY+9j
OEcGUMNHKyPzjR1VUzYZKQ8ukc58YMjHaKjNt0dAs7cIwMzcXiNwZYB45az8gQNk
XI4HausgaIffjdG+AQJBANWSrrZZEcyV6J7j9lFLh7ML1LG4cfzpqg2+oBd8UU6y
rYs/fgG15CCEl2uQnOBil6qHGuyz2JlrqxvySyw1e3ECQQDAVGb727pBs+rDsBJn
GoLrpLWuVHVSMIuaqYJtCXooUBcbaMQOZcvz0cDxJOl/NVevXJAgD//POr10X2vc
My8xAkB0yhecQ6zGEZv5d3N1FTaJpIiU/uXmheimR33IGgVkYbUhFoFTciHj3l3n
RldjJMcHS4ZftiFWFFinmaGd9UkhAkA8VL2RV9XPcm68P+kl6o0S+jH7o4bB53SD
aZT+OzDUoHr/IBgQJCKcMzoA6wFL5CHDYpfbVul5ygVQEfa1tmChAkBY2pd+w0FN
3HSZ+wZ9/q/tiBkWoZpsEcOckAwW5f2MVXq32FZpEctP3P5VYMGek/SJGxiXzYuO
VCe3uFNhexw1
-----END PRIVATE KEY-----';
const MERCHANT_PUB_IDLE_PUBLIC_KEY_STR = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCuXeAKaEjreNXXxx9WsXIcNNP3
lzHv24lnWe3RKz/qvN+gO6I9j53+v+W0eHmz42E+Lo5rbR35rt/eCxkf1ahypqVH
xQPpUsaG6qouf+4ElMOw3Jn/6EUFA9Zg2b5YT3uPNYe5XQo8WKdiX6QibPrqDFMm
3HFp6G/reDxTYxODZwIDAQAB
-----END PUBLIC KEY-----';
/**
* 商户系统二手小程序-测试 SERVER端私钥与客户端公钥
*/
const TEST_MERCHANT_PUB_IDLE_PRIVATE_KEY_STR = '-----BEGIN PRIVATE KEY-----
MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAJnSpR48UvoBlSP4
z+YVSGONzpWGFsceGw5j2Il7kTXgC0nEOQ+6UHcLeov2nnY66oT6LdbdtLt4bxKG
uJcCY3z2yq4gCDJM99aGhc9CqmcCqtLTg2KU+CQUtskglikfOZHkYGs2AiPkHpz+
ZaIMhASp5QcXMh2i/9gAG6+49o0fAgMBAAECgYASQ00xYs4jOq7fX3ongh1fHIYL
gKkRqQRjV/1sjUw3TktozbBMqr1E9QrutTApL2OKuD1bBmWf4HOninE+FJ2FGI7+
SJmaWug5X4q+I6KtlQwvXbh9nWr63Z6NeA+tk2/ymK4czwnjTRSil4cpyOIL/j4I
u7D54MlTnvIwwfLBCQJBAMzOoeV2i8auhpr5Ki9SFbj/FSkOgLW8R6q2GwMeI/zt
OjR3IwJBPfYAwYBii0jJXneJ0AIxQVAJpE5Ck/TnuTUCQQDARZX/SSOQK6BnHtU6
zIP2vGhsYLQC8cJnIGS5+O/PgMCNxRuuvwL7gmEx9Cy1MUsE/EPCASvBCmO4gA5e
54uDAkAFEzm/zeg4zCpZvMLm2Ungg7Gqisl1t2yvNkQFF8IcimRe2HTtoWA/sFUb
MVXyP8sveyLEayQLL7H6nnu8HeHhAkA2kMkD3RbZqHfqLAbpm/brhAbCkyMjHsdE
Cx5q5Onx4qFC2qiDjDPletfonFo/xdB7hrgYC8sGCtPIHZd2eZHPAkAKKsmhMbqP
YBU7o/pyCdFBad4ageW4Nyb+q1Svs6gGSGoufn3X+AlhIt9zuXKy6366UVGvfg/x
r80efjK0Awsf
-----END PRIVATE KEY-----';
const TEST_MERCHANT_PUB_IDLE_PUBLIC_KEY_STR = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDkHed5g0yBpdyZZVEwe84cm3iM
2tlqPGEevEJN0Aufp3uu6RmPGCP2SP0O0pmLo4eIHD/RgH/CIq1ddHe8jUuS1Xnw
I3tfsHhnZl3udcK/00/q6eEXLgzhnhSG2p0A3qee2LF6ll7Z2zSUkpP++NOuM3mf
Hr8Q7se66z2xizgFnwIDAQAB
-----END PUBLIC KEY-----'; -----END PUBLIC KEY-----';
/** /**
* TEST SERVER端私钥与客户端公钥 * TEST SERVER端私钥与客户端公钥
...@@ -293,6 +393,22 @@ mnRjVUtXBgEF0A9xt2QVNMQovtjJ2rkg43gVByDKbOsUqbJYjA12IpALMdECHCMl ...@@ -293,6 +393,22 @@ mnRjVUtXBgEF0A9xt2QVNMQovtjJ2rkg43gVByDKbOsUqbJYjA12IpALMdECHCMl
'pub_key' => self::TEST_MERCHANT_PUB_PIN_PUBLIC_KEY_STR, 'pub_key' => self::TEST_MERCHANT_PUB_PIN_PUBLIC_KEY_STR,
'pri_key' => self::TEST_MERCHANT_PUB_PIN_PRIVATE_KEY_STR, 'pri_key' => self::TEST_MERCHANT_PUB_PIN_PRIVATE_KEY_STR,
], ],
'merchant-pub-deliverer' => [
'pub_key' => self::MERCHANT_PUB_DELIVERER_PUBLIC_KEY_STR,
'pri_key' => self::MERCHANT_PUB_DELIVERER_PRIVATE_KEY_STR,
],
'test-merchant-pub-deliverer' => [
'pub_key' => self::TEST_MERCHANT_PUB_DELIVERER_PUBLIC_KEY_STR,
'pri_key' => self::TEST_MERCHANT_PUB_DELIVERER_PRIVATE_KEY_STR,
],
'merchant-pub-idle' => [
'pub_key' => self::MERCHANT_PUB_IDLE_PUBLIC_KEY_STR,
'pri_key' => self::MERCHANT_PUB_IDLE_PRIVATE_KEY_STR,
],
'test-merchant-pub-idle' => [
'pub_key' => self::TEST_MERCHANT_PUB_IDLE_PUBLIC_KEY_STR,
'pri_key' => self::TEST_MERCHANT_PUB_IDLE_PRIVATE_KEY_STR,
],
'test' => [ 'test' => [
'pub_key' => self::TEST_PUBLIC_KEY_STR, 'pub_key' => self::TEST_PUBLIC_KEY_STR,
'pri_key' => self::TEST_PRIVATE_KEY_STR, 'pri_key' => self::TEST_PRIVATE_KEY_STR,
......
<?php
namespace Api\PhpUtils\EasyWechat;
class AppConfig
{
public static function getCorpConfig(array $config = []): array
{
$default = [
'corp_id' => config('wechat', 'corp.id'),
'secret' => config('wechat', 'corp.secret'),
];
return array_merge($default,$config);
}
}
\ No newline at end of file
...@@ -42,30 +42,75 @@ namespace Composer\Autoload; ...@@ -42,30 +42,75 @@ namespace Composer\Autoload;
*/ */
class ClassLoader class ClassLoader
{ {
/** @var ?string */
private $vendorDir; private $vendorDir;
// PSR-4 // PSR-4
/**
* @var array[]
* @psalm-var array<string, array<string, int>>
*/
private $prefixLengthsPsr4 = array(); private $prefixLengthsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, array<int, string>>
*/
private $prefixDirsPsr4 = array(); private $prefixDirsPsr4 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr4 = array(); private $fallbackDirsPsr4 = array();
// PSR-0 // PSR-0
/**
* @var array[]
* @psalm-var array<string, array<string, string[]>>
*/
private $prefixesPsr0 = array(); private $prefixesPsr0 = array();
/**
* @var array[]
* @psalm-var array<string, string>
*/
private $fallbackDirsPsr0 = array(); private $fallbackDirsPsr0 = array();
/** @var bool */
private $useIncludePath = false; private $useIncludePath = false;
/**
* @var string[]
* @psalm-var array<string, string>
*/
private $classMap = array(); private $classMap = array();
/** @var bool */
private $classMapAuthoritative = false; private $classMapAuthoritative = false;
/**
* @var bool[]
* @psalm-var array<string, bool>
*/
private $missingClasses = array(); private $missingClasses = array();
/** @var ?string */
private $apcuPrefix; private $apcuPrefix;
/**
* @var self[]
*/
private static $registeredLoaders = array(); private static $registeredLoaders = array();
/**
* @param ?string $vendorDir
*/
public function __construct($vendorDir = null) public function __construct($vendorDir = null)
{ {
$this->vendorDir = $vendorDir; $this->vendorDir = $vendorDir;
} }
/**
* @return string[]
*/
public function getPrefixes() public function getPrefixes()
{ {
if (!empty($this->prefixesPsr0)) { if (!empty($this->prefixesPsr0)) {
...@@ -75,28 +120,47 @@ class ClassLoader ...@@ -75,28 +120,47 @@ class ClassLoader
return array(); return array();
} }
/**
* @return array[]
* @psalm-return array<string, array<int, string>>
*/
public function getPrefixesPsr4() public function getPrefixesPsr4()
{ {
return $this->prefixDirsPsr4; return $this->prefixDirsPsr4;
} }
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirs() public function getFallbackDirs()
{ {
return $this->fallbackDirsPsr0; return $this->fallbackDirsPsr0;
} }
/**
* @return array[]
* @psalm-return array<string, string>
*/
public function getFallbackDirsPsr4() public function getFallbackDirsPsr4()
{ {
return $this->fallbackDirsPsr4; return $this->fallbackDirsPsr4;
} }
/**
* @return string[] Array of classname => path
* @psalm-var array<string, string>
*/
public function getClassMap() public function getClassMap()
{ {
return $this->classMap; return $this->classMap;
} }
/** /**
* @param array $classMap Class to filename map * @param string[] $classMap Class to filename map
* @psalm-param array<string, string> $classMap
*
* @return void
*/ */
public function addClassMap(array $classMap) public function addClassMap(array $classMap)
{ {
...@@ -112,8 +176,10 @@ class ClassLoader ...@@ -112,8 +176,10 @@ class ClassLoader
* appending or prepending to the ones previously set for this prefix. * appending or prepending to the ones previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param array|string $paths The PSR-0 root directories * @param string[]|string $paths The PSR-0 root directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
*
* @return void
*/ */
public function add($prefix, $paths, $prepend = false) public function add($prefix, $paths, $prepend = false)
{ {
...@@ -157,10 +223,12 @@ class ClassLoader ...@@ -157,10 +223,12 @@ class ClassLoader
* appending or prepending to the ones previously set for this namespace. * appending or prepending to the ones previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories * @param string[]|string $paths The PSR-4 base directories
* @param bool $prepend Whether to prepend the directories * @param bool $prepend Whether to prepend the directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
*
* @return void
*/ */
public function addPsr4($prefix, $paths, $prepend = false) public function addPsr4($prefix, $paths, $prepend = false)
{ {
...@@ -205,7 +273,9 @@ class ClassLoader ...@@ -205,7 +273,9 @@ class ClassLoader
* replacing any others previously set for this prefix. * replacing any others previously set for this prefix.
* *
* @param string $prefix The prefix * @param string $prefix The prefix
* @param array|string $paths The PSR-0 base directories * @param string[]|string $paths The PSR-0 base directories
*
* @return void
*/ */
public function set($prefix, $paths) public function set($prefix, $paths)
{ {
...@@ -221,9 +291,11 @@ class ClassLoader ...@@ -221,9 +291,11 @@ class ClassLoader
* replacing any others previously set for this namespace. * replacing any others previously set for this namespace.
* *
* @param string $prefix The prefix/namespace, with trailing '\\' * @param string $prefix The prefix/namespace, with trailing '\\'
* @param array|string $paths The PSR-4 base directories * @param string[]|string $paths The PSR-4 base directories
* *
* @throws \InvalidArgumentException * @throws \InvalidArgumentException
*
* @return void
*/ */
public function setPsr4($prefix, $paths) public function setPsr4($prefix, $paths)
{ {
...@@ -243,6 +315,8 @@ class ClassLoader ...@@ -243,6 +315,8 @@ class ClassLoader
* Turns on searching the include path for class files. * Turns on searching the include path for class files.
* *
* @param bool $useIncludePath * @param bool $useIncludePath
*
* @return void
*/ */
public function setUseIncludePath($useIncludePath) public function setUseIncludePath($useIncludePath)
{ {
...@@ -265,6 +339,8 @@ class ClassLoader ...@@ -265,6 +339,8 @@ class ClassLoader
* that have not been registered with the class map. * that have not been registered with the class map.
* *
* @param bool $classMapAuthoritative * @param bool $classMapAuthoritative
*
* @return void
*/ */
public function setClassMapAuthoritative($classMapAuthoritative) public function setClassMapAuthoritative($classMapAuthoritative)
{ {
...@@ -285,6 +361,8 @@ class ClassLoader ...@@ -285,6 +361,8 @@ class ClassLoader
* APCu prefix to use to cache found/not-found classes, if the extension is enabled. * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
* *
* @param string|null $apcuPrefix * @param string|null $apcuPrefix
*
* @return void
*/ */
public function setApcuPrefix($apcuPrefix) public function setApcuPrefix($apcuPrefix)
{ {
...@@ -305,6 +383,8 @@ class ClassLoader ...@@ -305,6 +383,8 @@ class ClassLoader
* Registers this instance as an autoloader. * Registers this instance as an autoloader.
* *
* @param bool $prepend Whether to prepend the autoloader or not * @param bool $prepend Whether to prepend the autoloader or not
*
* @return void
*/ */
public function register($prepend = false) public function register($prepend = false)
{ {
...@@ -324,6 +404,8 @@ class ClassLoader ...@@ -324,6 +404,8 @@ class ClassLoader
/** /**
* Unregisters this instance as an autoloader. * Unregisters this instance as an autoloader.
*
* @return void
*/ */
public function unregister() public function unregister()
{ {
...@@ -401,6 +483,11 @@ class ClassLoader ...@@ -401,6 +483,11 @@ class ClassLoader
return self::$registeredLoaders; return self::$registeredLoaders;
} }
/**
* @param string $class
* @param string $ext
* @return string|false
*/
private function findFileWithExtension($class, $ext) private function findFileWithExtension($class, $ext)
{ {
// PSR-4 lookup // PSR-4 lookup
...@@ -472,6 +559,10 @@ class ClassLoader ...@@ -472,6 +559,10 @@ class ClassLoader
* Scope isolated include. * Scope isolated include.
* *
* Prevents access to $this/self from included files. * Prevents access to $this/self from included files.
*
* @param string $file
* @return void
* @private
*/ */
function includeFile($file) function includeFile($file)
{ {
......
...@@ -15,559 +15,323 @@ namespace Composer; ...@@ -15,559 +15,323 @@ namespace Composer;
use Composer\Autoload\ClassLoader; use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser; use Composer\Semver\VersionParser;
/**
* This class is copied in every Composer installed project and available to all
*
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
*
* To require its presence, you can require `composer-runtime-api ^2.0`
*/
class InstalledVersions class InstalledVersions
{ {
private static $installed = array ( private static $installed;
'root' => private static $canGetVendors;
array ( private static $installedByVendor = array();
'pretty_version' => 'dev-develop',
'version' => 'dev-develop', /**
'aliases' => * Returns a list of all package names which are present, either by being installed, replaced or provided
array ( *
), * @return string[]
'reference' => 'e57aa42ccab85ef592670fe44526010029dd6359', * @psalm-return list<string>
'name' => 'yidian/yaf_demo', */
), public static function getInstalledPackages()
'versions' => {
array ( $packages = array();
'api/php_services' => foreach (self::getInstalled() as $installed) {
array ( $packages[] = array_keys($installed['versions']);
'pretty_version' => '1.0.17', }
'version' => '1.0.17.0',
'aliases' => if (1 === \count($packages)) {
array ( return $packages[0];
), }
'reference' => '5b7bce9db15629dd3b1bcca0d066e2e1f1fae404',
), return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
'api/php_utils' => }
array (
'pretty_version' => 'v1.0.17', /**
'version' => '1.0.17.0', * Returns a list of all package names with a specific type e.g. 'library'
'aliases' => *
array ( * @param string $type
), * @return string[]
'reference' => 'aa70ccdd545f3e421eaf717274954990f1805b87', * @psalm-return list<string>
), */
'bacon/bacon-qr-code' => public static function getInstalledPackagesByType($type)
array ( {
'pretty_version' => '2.0.4', $packagesByType = array();
'version' => '2.0.4.0',
'aliases' => foreach (self::getInstalled() as $installed) {
array ( foreach ($installed['versions'] as $name => $package) {
), if (isset($package['type']) && $package['type'] === $type) {
'reference' => 'f73543ac4e1def05f1a70bcd1525c8a157a1ad09', $packagesByType[] = $name;
), }
'dasprid/enum' => }
array ( }
'pretty_version' => '1.0.3',
'version' => '1.0.3.0', return $packagesByType;
'aliases' => }
array (
), /**
'reference' => '5abf82f213618696dda8e3bf6f64dd042d8542b2', * Checks whether the given package is installed
), *
'elasticsearch/elasticsearch' => * This also returns true if the package name is provided or replaced by another package
array ( *
'pretty_version' => '7.11.x-dev', * @param string $packageName
'version' => '7.11.9999999.9999999-dev', * @param bool $includeDevRequirements
'aliases' => * @return bool
array ( */
), public static function isInstalled($packageName, $includeDevRequirements = true)
'reference' => '8d08050fef9d89004702b1428b8c1f7f4f6162cf', {
), foreach (self::getInstalled() as $installed) {
'endroid/qr-code' => if (isset($installed['versions'][$packageName])) {
array ( return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
'pretty_version' => '3.9.6', }
'version' => '3.9.6.0', }
'aliases' =>
array ( return false;
), }
'reference' => '9cdd4f5d609bfc8811ca4a62b4d23eb16976242f',
), /**
'ezimuel/guzzlestreams' => * Checks whether the given package satisfies a version constraint
array ( *
'pretty_version' => 'dev-master', * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
'version' => 'dev-master', *
'aliases' => * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
array ( *
0 => '3.0.x-dev', * @param VersionParser $parser Install composer/semver to have access to this class and functionality
), * @param string $packageName
'reference' => 'abe3791d231167f14eb80d413420d1eab91163a8', * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
), * @return bool
'ezimuel/ringphp' => */
array ( public static function satisfies(VersionParser $parser, $packageName, $constraint)
'pretty_version' => 'dev-master', {
'version' => 'dev-master', $constraint = $parser->parseConstraints($constraint);
'aliases' => $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
array (
0 => '1.1.x-dev', return $provided->matches($constraint);
), }
'reference' => '0b78f89d8e0bb9e380046c31adfa40347e9f663b',
), /**
'guzzlehttp/guzzle' => * Returns a version constraint representing all the range(s) which are installed for a given package
array ( *
'pretty_version' => '6.3.0', * It is easier to use this via isInstalled() with the $constraint argument if you need to check
'version' => '6.3.0.0', * whether a given version of a package is installed, and not just whether it exists
'aliases' => *
array ( * @param string $packageName
), * @return string Version constraint usable with composer/semver
'reference' => 'f4db5a78a5ea468d4831de7f0bf9d9415e348699', */
), public static function getVersionRanges($packageName)
'guzzlehttp/promises' => {
array ( foreach (self::getInstalled() as $installed) {
'pretty_version' => 'dev-master', if (!isset($installed['versions'][$packageName])) {
'version' => 'dev-master', continue;
'aliases' => }
array (
0 => '1.4.x-dev', $ranges = array();
), if (isset($installed['versions'][$packageName]['pretty_version'])) {
'reference' => 'c1dd809c8f51a477701052f4b9e5b4bb5c1061aa', $ranges[] = $installed['versions'][$packageName]['pretty_version'];
), }
'guzzlehttp/psr7' => if (array_key_exists('aliases', $installed['versions'][$packageName])) {
array ( $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
'pretty_version' => '1.x-dev', }
'version' => '1.9999999.9999999.9999999-dev', if (array_key_exists('replaced', $installed['versions'][$packageName])) {
'aliases' => $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
array ( }
), if (array_key_exists('provided', $installed['versions'][$packageName])) {
'reference' => '9d006741ba865a45adccfac45d8e1053086a5a3f', $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
), }
'khanamiryan/qrcode-detector-decoder' =>
array ( return implode(' || ', $ranges);
'pretty_version' => '1.0.5.2', }
'version' => '1.0.5.2',
'aliases' => throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
array ( }
),
'reference' => '04fdd58d86a387065f707dc6d3cc304c719910c1', /**
), * @param string $packageName
'mongodb/mongodb' => * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
array ( */
'pretty_version' => '1.4.3', public static function getVersion($packageName)
'version' => '1.4.3.0', {
'aliases' => foreach (self::getInstalled() as $installed) {
array ( if (!isset($installed['versions'][$packageName])) {
), continue;
'reference' => '18fca8cc8d0c2cc07f76605760d20632bb3dab96', }
),
'myclabs/php-enum' => if (!isset($installed['versions'][$packageName]['version'])) {
array ( return null;
'pretty_version' => '1.7.7', }
'version' => '1.7.7.0',
'aliases' => return $installed['versions'][$packageName]['version'];
array ( }
),
'reference' => 'd178027d1e679832db9f38248fcc7200647dc2b7', throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
), }
'perftools/php-profiler' =>
array ( /**
'pretty_version' => '0.18.0', * @param string $packageName
'version' => '0.18.0.0', * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
'aliases' => */
array ( public static function getPrettyVersion($packageName)
), {
'reference' => '794c435f615ab9ca4347e386b4d8c6524fe9e3ae', foreach (self::getInstalled() as $installed) {
), if (!isset($installed['versions'][$packageName])) {
'psr/http-message' => continue;
array ( }
'pretty_version' => 'dev-master',
'version' => 'dev-master', if (!isset($installed['versions'][$packageName]['pretty_version'])) {
'aliases' => return null;
array ( }
0 => '1.0.x-dev',
), return $installed['versions'][$packageName]['pretty_version'];
'reference' => 'efd67d1dc14a7ef4fc4e518e7dee91c271d524e4', }
),
'psr/http-message-implementation' => throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
array ( }
'provided' =>
array ( /**
0 => '1.0', * @param string $packageName
), * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
), */
'psr/log' => public static function getReference($packageName)
array ( {
'pretty_version' => '1.1.4', foreach (self::getInstalled() as $installed) {
'version' => '1.1.4.0', if (!isset($installed['versions'][$packageName])) {
'aliases' => continue;
array ( }
),
'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11', if (!isset($installed['versions'][$packageName]['reference'])) {
), return null;
'ralouphie/getallheaders' => }
array (
'pretty_version' => '3.0.3', return $installed['versions'][$packageName]['reference'];
'version' => '3.0.3.0', }
'aliases' =>
array ( throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
), }
'reference' => '120b605dfeb996808c31b6477290a714d356e822',
), /**
'react/promise' => * @param string $packageName
array ( * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
'pretty_version' => '2.x-dev', */
'version' => '2.9999999.9999999.9999999-dev', public static function getInstallPath($packageName)
'aliases' => {
array ( foreach (self::getInstalled() as $installed) {
), if (!isset($installed['versions'][$packageName])) {
'reference' => 'a9752a861e21c0fe0b380c9f9e55beddc0ed7d31', continue;
), }
'symfony/deprecation-contracts' =>
array ( return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
'pretty_version' => 'dev-main', }
'version' => 'dev-main',
'aliases' => throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
array ( }
0 => '2.5.x-dev',
), /**
'reference' => '6f981ee24cf69ee7ce9736146d1c57c2780598a8', * @return array
), * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
'symfony/options-resolver' => */
array ( public static function getRootPackage()
'pretty_version' => '5.4.x-dev', {
'version' => '5.4.9999999.9999999-dev', $installed = self::getInstalled();
'aliases' =>
array ( return $installed[0]['root'];
), }
'reference' => 'cd63dbab0428a47f8576e4e58148aeae2e32e91c',
), /**
'symfony/polyfill-ctype' => * Returns the raw installed.php data for custom implementations
array ( *
'pretty_version' => 'dev-main', * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
'version' => 'dev-main', * @return array[]
'aliases' => * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}
array ( */
0 => '1.23.x-dev', public static function getRawData()
), {
'reference' => 'f24ae462b1d60c333df104f0b81ec7d0e12f6e9f', @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
),
'symfony/polyfill-intl-grapheme' => if (null === self::$installed) {
array ( // only require the installed.php file if this file is loaded from its dumped location,
'pretty_version' => 'dev-main', // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
'version' => 'dev-main', if (substr(__DIR__, -8, 1) !== 'C') {
'aliases' => self::$installed = include __DIR__ . '/installed.php';
array ( } else {
0 => '1.23.x-dev', self::$installed = array();
), }
'reference' => '16880ba9c5ebe3642d1995ab866db29270b36535', }
),
'symfony/polyfill-intl-normalizer' => return self::$installed;
array ( }
'pretty_version' => 'dev-main',
'version' => 'dev-main', /**
'aliases' => * Returns the raw data of all installed.php which are currently loaded for custom implementations
array ( *
0 => '1.23.x-dev', * @return array[]
), * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
'reference' => '8590a5f561694770bdcd3f9b5c69dde6945028e8', */
), public static function getAllRawData()
'symfony/polyfill-mbstring' => {
array ( return self::getInstalled();
'pretty_version' => 'dev-main', }
'version' => 'dev-main',
'aliases' => /**
array ( * Lets you reload the static array from another file
0 => '1.23.x-dev', *
), * This is only useful for complex integrations in which a project needs to use
'reference' => '344e456152e22a1bce3048c6c311059ea14bde47', * this class but then also needs to execute another project's autoloader in process,
), * and wants to ensure both projects have access to their version of installed.php.
'symfony/polyfill-php73' => *
array ( * A typical case would be PHPUnit, where it would need to make sure it reads all
'pretty_version' => 'dev-main', * the data it needs from this class, then call reload() with
'version' => 'dev-main', * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
'aliases' => * the project in which it runs can then also use this class safely, without
array ( * interference between PHPUnit's dependencies and the project's dependencies.
0 => '1.23.x-dev', *
), * @param array[] $data A vendor/composer/installed.php data set
'reference' => 'cc5db0e22b3cb4111010e48785a97f670b350ca5', * @return void
), *
'symfony/polyfill-php80' => * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>} $data
array ( */
'pretty_version' => 'dev-main', public static function reload($data)
'version' => 'dev-main', {
'aliases' => self::$installed = $data;
array ( self::$installedByVendor = array();
0 => '1.23.x-dev', }
),
'reference' => '57b712b08eddb97c762a8caa32c84e037892d2e9', /**
), * @return array[]
'symfony/property-access' => * @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string, type?: string}>}>
array ( */
'pretty_version' => '5.4.x-dev', private static function getInstalled()
'version' => '5.4.9999999.9999999-dev', {
'aliases' => if (null === self::$canGetVendors) {
array ( self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
), }
'reference' => 'bd3efa2a2d856d167dde8e7b883c65119064b7f5',
), $installed = array();
'symfony/property-info' =>
array ( if (self::$canGetVendors) {
'pretty_version' => '5.4.x-dev', foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
'version' => '5.4.9999999.9999999-dev', if (isset(self::$installedByVendor[$vendorDir])) {
'aliases' => $installed[] = self::$installedByVendor[$vendorDir];
array ( } elseif (is_file($vendorDir.'/composer/installed.php')) {
), $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
'reference' => '903f3f3f6a360bc4739f8390e5031acc70d9cd9f', if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
), self::$installed = $installed[count($installed) - 1];
'symfony/string' => }
array ( }
'pretty_version' => '5.4.x-dev', }
'version' => '5.4.9999999.9999999-dev', }
'aliases' =>
array ( if (null === self::$installed) {
), // only require the installed.php file if this file is loaded from its dumped location,
'reference' => '412eda2039ad5466f823c3696c0c309e6c140086', // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
), if (substr(__DIR__, -8, 1) !== 'C') {
'yidian/yaf_demo' => self::$installed = require __DIR__ . '/installed.php';
array ( } else {
'pretty_version' => 'dev-develop', self::$installed = array();
'version' => 'dev-develop', }
'aliases' => }
array ( $installed[] = self::$installed;
),
'reference' => 'e57aa42ccab85ef592670fe44526010029dd6359', return $installed;
), }
),
);
private static $canGetVendors;
private static $installedByVendor = array();
public static function getInstalledPackages()
{
$packages = array();
foreach (self::getInstalled() as $installed) {
$packages[] = array_keys($installed['versions']);
}
if (1 === \count($packages)) {
return $packages[0];
}
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
}
public static function isInstalled($packageName)
{
foreach (self::getInstalled() as $installed) {
if (isset($installed['versions'][$packageName])) {
return true;
}
}
return false;
}
public static function satisfies(VersionParser $parser, $packageName, $constraint)
{
$constraint = $parser->parseConstraints($constraint);
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
return $provided->matches($constraint);
}
public static function getVersionRanges($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
$ranges = array();
if (isset($installed['versions'][$packageName]['pretty_version'])) {
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
}
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
}
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
}
if (array_key_exists('provided', $installed['versions'][$packageName])) {
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
}
return implode(' || ', $ranges);
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['version'])) {
return null;
}
return $installed['versions'][$packageName]['version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getPrettyVersion($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
return null;
}
return $installed['versions'][$packageName]['pretty_version'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getReference($packageName)
{
foreach (self::getInstalled() as $installed) {
if (!isset($installed['versions'][$packageName])) {
continue;
}
if (!isset($installed['versions'][$packageName]['reference'])) {
return null;
}
return $installed['versions'][$packageName]['reference'];
}
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
}
public static function getRootPackage()
{
$installed = self::getInstalled();
return $installed[0]['root'];
}
public static function getRawData()
{
return self::$installed;
}
public static function reload($data)
{
self::$installed = $data;
self::$installedByVendor = array();
}
private static function getInstalled()
{
if (null === self::$canGetVendors) {
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
}
$installed = array();
if (self::$canGetVendors) {
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
if (isset(self::$installedByVendor[$vendorDir])) {
$installed[] = self::$installedByVendor[$vendorDir];
} elseif (is_file($vendorDir.'/composer/installed.php')) {
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
}
}
}
$installed[] = self::$installed;
return $installed;
}
} }
...@@ -53,6 +53,7 @@ return array( ...@@ -53,6 +53,7 @@ return array(
'Api\\PhpUtils\\Common\\IP' => $vendorDir . '/api/php_utils/src/Common/IP.php', 'Api\\PhpUtils\\Common\\IP' => $vendorDir . '/api/php_utils/src/Common/IP.php',
'Api\\PhpUtils\\Common\\Rsa' => $vendorDir . '/api/php_utils/src/Common/Rsa.php', 'Api\\PhpUtils\\Common\\Rsa' => $vendorDir . '/api/php_utils/src/Common/Rsa.php',
'Api\\PhpUtils\\Common\\TimeOut' => $vendorDir . '/api/php_utils/src/Common/TimeOut.php', 'Api\\PhpUtils\\Common\\TimeOut' => $vendorDir . '/api/php_utils/src/Common/TimeOut.php',
'Api\\PhpUtils\\EasyWechat\\AppConfig' => $vendorDir . '/api/php_utils/src/EasyWechat/AppConfig.php',
'Api\\PhpUtils\\Elastic\\ElasticUtil' => $vendorDir . '/api/php_utils/src/Elastic/ElasticUtil.php', 'Api\\PhpUtils\\Elastic\\ElasticUtil' => $vendorDir . '/api/php_utils/src/Elastic/ElasticUtil.php',
'Api\\PhpUtils\\Elastic\\Manager\\DocumentManager' => $vendorDir . '/api/php_utils/src/Elastic/Manager/DocumentManager.php', 'Api\\PhpUtils\\Elastic\\Manager\\DocumentManager' => $vendorDir . '/api/php_utils/src/Elastic/Manager/DocumentManager.php',
'Api\\PhpUtils\\Elastic\\Manager\\IndexManager' => $vendorDir . '/api/php_utils/src/Elastic/Manager/IndexManager.php', 'Api\\PhpUtils\\Elastic\\Manager\\IndexManager' => $vendorDir . '/api/php_utils/src/Elastic/Manager/IndexManager.php',
...@@ -106,6 +107,7 @@ return array( ...@@ -106,6 +107,7 @@ return array(
'App\\Models\\demo\\mongo\\User' => $baseDir . '/application/models/demo/mongo/User.php', 'App\\Models\\demo\\mongo\\User' => $baseDir . '/application/models/demo/mongo/User.php',
'App\\Models\\demo\\mysql\\User' => $baseDir . '/application/models/demo/mysql/User.php', 'App\\Models\\demo\\mysql\\User' => $baseDir . '/application/models/demo/mysql/User.php',
'App\\Models\\goods\\mysql\\Category' => $baseDir . '/application/models/goods/mysql/Category.php', 'App\\Models\\goods\\mysql\\Category' => $baseDir . '/application/models/goods/mysql/Category.php',
'App\\Models\\goods\\mysql\\ErshouGoodsSku' => $baseDir . '/application/models/goods/mysql/ErshouGoodsSku.php',
'App\\Models\\goods\\mysql\\GoodsOperationRecord' => $baseDir . '/application/models/goods/mysql/GoodsOperationRecord.php', 'App\\Models\\goods\\mysql\\GoodsOperationRecord' => $baseDir . '/application/models/goods/mysql/GoodsOperationRecord.php',
'App\\Models\\goods\\mysql\\GoodsRefundRecord' => $baseDir . '/application/models/goods/mysql/GoodsRefundRecord.php', 'App\\Models\\goods\\mysql\\GoodsRefundRecord' => $baseDir . '/application/models/goods/mysql/GoodsRefundRecord.php',
'App\\Models\\goods\\mysql\\GoodsSku' => $baseDir . '/application/models/goods/mysql/GoodsSku.php', 'App\\Models\\goods\\mysql\\GoodsSku' => $baseDir . '/application/models/goods/mysql/GoodsSku.php',
...@@ -121,6 +123,7 @@ return array( ...@@ -121,6 +123,7 @@ return array(
'App\\Models\\goods\\mysql\\PindanGoodsSnapshot' => $baseDir . '/application/models/goods/mysql/PindanGoodsSnapshot.php', 'App\\Models\\goods\\mysql\\PindanGoodsSnapshot' => $baseDir . '/application/models/goods/mysql/PindanGoodsSnapshot.php',
'App\\Models\\goods\\mysql\\Shop' => $baseDir . '/application/models/goods/mysql/Shop.php', 'App\\Models\\goods\\mysql\\Shop' => $baseDir . '/application/models/goods/mysql/Shop.php',
'App\\Models\\goods\\mysql\\Tcc' => $baseDir . '/application/models/goods/mysql/Tcc.php', 'App\\Models\\goods\\mysql\\Tcc' => $baseDir . '/application/models/goods/mysql/Tcc.php',
'App\\Models\\marketing\\mysql\\BusinessCircle' => $baseDir . '/application/models/marketing/mysql/BusinessCircle.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorColonel' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorColonel.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorColonel' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorColonel.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorColonelApply' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorColonelApply.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorColonelApply' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorColonelApply.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorConfig' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorConfig.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorConfig' => $baseDir . '/application/models/marketing/mysql/ColonelDistributorConfig.php',
...@@ -134,11 +137,14 @@ return array( ...@@ -134,11 +137,14 @@ return array(
'App\\Models\\marketing\\mysql\\MarketingPindan' => $baseDir . '/application/models/marketing/mysql/MarketingPindan.php', 'App\\Models\\marketing\\mysql\\MarketingPindan' => $baseDir . '/application/models/marketing/mysql/MarketingPindan.php',
'App\\Models\\marketing\\mysql\\MarketingTakePlace' => $baseDir . '/application/models/marketing/mysql/MarketingTakePlace.php', 'App\\Models\\marketing\\mysql\\MarketingTakePlace' => $baseDir . '/application/models/marketing/mysql/MarketingTakePlace.php',
'App\\Models\\marketing\\mysql\\QyqGroupleader' => $baseDir . '/application/models/marketing/mysql/QyqGroupleader.php', 'App\\Models\\marketing\\mysql\\QyqGroupleader' => $baseDir . '/application/models/marketing/mysql/QyqGroupleader.php',
'App\\Models\\marketing\\mysql\\Tag' => $baseDir . '/application/models/marketing/mysql/Tag.php',
'App\\Models\\marketing\\mysql\\TakePlace' => $baseDir . '/application/models/marketing/mysql/TakePlace.php', 'App\\Models\\marketing\\mysql\\TakePlace' => $baseDir . '/application/models/marketing/mysql/TakePlace.php',
'App\\Models\\shop\\mysql\\Shop' => $baseDir . '/application/models/shop/mysql/Shop.php', 'App\\Models\\shop\\mysql\\Shop' => $baseDir . '/application/models/shop/mysql/Shop.php',
'App\\Models\\shop\\mysql\\SubShop' => $baseDir . '/application/models/shop/mysql/SubShop.php', 'App\\Models\\shop\\mysql\\SubShop' => $baseDir . '/application/models/shop/mysql/SubShop.php',
'App\\Models\\tmp\\mysql\\QyqTicketData' => $baseDir . '/application/models/tmp/mysql/QyqTicketData.php', 'App\\Models\\tmp\\mysql\\QyqTicketData' => $baseDir . '/application/models/tmp/mysql/QyqTicketData.php',
'App\\Models\\user\\mysql\\UserWechatBind' => $baseDir . '/application/models/user/mysql/UserWechatBind.php', 'App\\Models\\user\\mysql\\UserWechatBind' => $baseDir . '/application/models/user/mysql/UserWechatBind.php',
'App\\Models\\wx\\mysql\\WxGroupChat' => $baseDir . '/application/models/wx/mysql/WxGroupChat.php',
'App\\Models\\wx\\mysql\\WxGroupChatUser' => $baseDir . '/application/models/wx/mysql/WxGroupChatUser.php',
'App\\Plugins\\Hook' => $baseDir . '/application/plugins/Hook.php', 'App\\Plugins\\Hook' => $baseDir . '/application/plugins/Hook.php',
'App\\Services\\common\\CommonService' => $baseDir . '/application/services/common/CommonService.php', 'App\\Services\\common\\CommonService' => $baseDir . '/application/services/common/CommonService.php',
'App\\Services\\common\\KafkaService' => $baseDir . '/application/services/common/KafkaService.php', 'App\\Services\\common\\KafkaService' => $baseDir . '/application/services/common/KafkaService.php',
...@@ -147,10 +153,12 @@ return array( ...@@ -147,10 +153,12 @@ return array(
'App\\Services\\demo\\MysqlService' => $baseDir . '/application/services/demo/MysqlService.php', 'App\\Services\\demo\\MysqlService' => $baseDir . '/application/services/demo/MysqlService.php',
'App\\Services\\goods\\CategoryService' => $baseDir . '/application/services/goods/CategoryService.php', 'App\\Services\\goods\\CategoryService' => $baseDir . '/application/services/goods/CategoryService.php',
'App\\Services\\goods\\ElasticGoodService' => $baseDir . '/application/services/goods/ElasticGoodService.php', 'App\\Services\\goods\\ElasticGoodService' => $baseDir . '/application/services/goods/ElasticGoodService.php',
'App\\Services\\goods\\ErshouGoodsService' => $baseDir . '/application/services/goods/ErshouGoodsService.php',
'App\\Services\\goods\\GoodsService' => $baseDir . '/application/services/goods/GoodsService.php', 'App\\Services\\goods\\GoodsService' => $baseDir . '/application/services/goods/GoodsService.php',
'App\\Services\\goods\\GoodsSnapshotsService' => $baseDir . '/application/services/goods/GoodsSnapshotsService.php', 'App\\Services\\goods\\GoodsSnapshotsService' => $baseDir . '/application/services/goods/GoodsSnapshotsService.php',
'App\\Services\\goods\\MarketingPindanGoodsService' => $baseDir . '/application/services/goods/MarketingPindanGoodsService.php', 'App\\Services\\goods\\MarketingPindanGoodsService' => $baseDir . '/application/services/goods/MarketingPindanGoodsService.php',
'App\\Services\\goods\\OtaService' => $baseDir . '/application/services/goods/OtaService.php', 'App\\Services\\goods\\OtaService' => $baseDir . '/application/services/goods/OtaService.php',
'App\\Services\\marketing\\BusinessCircleService' => $baseDir . '/application/services/marketing/BusinessCircleService.php',
'App\\Services\\marketing\\ColonelService' => $baseDir . '/application/services/marketing/ColonelService.php', 'App\\Services\\marketing\\ColonelService' => $baseDir . '/application/services/marketing/ColonelService.php',
'App\\Services\\marketing\\DistributionService' => $baseDir . '/application/services/marketing/DistributionService.php', 'App\\Services\\marketing\\DistributionService' => $baseDir . '/application/services/marketing/DistributionService.php',
'App\\Services\\marketing\\DistributorService' => $baseDir . '/application/services/marketing/DistributorService.php', 'App\\Services\\marketing\\DistributorService' => $baseDir . '/application/services/marketing/DistributorService.php',
...@@ -159,6 +167,7 @@ return array( ...@@ -159,6 +167,7 @@ return array(
'App\\Services\\marketing\\MarketingService' => $baseDir . '/application/services/marketing/MarketingService.php', 'App\\Services\\marketing\\MarketingService' => $baseDir . '/application/services/marketing/MarketingService.php',
'App\\Services\\marketing\\PindanActivityColonelConfigService' => $baseDir . '/application/services/marketing/PindanActivityColonelConfigService.php', 'App\\Services\\marketing\\PindanActivityColonelConfigService' => $baseDir . '/application/services/marketing/PindanActivityColonelConfigService.php',
'App\\Services\\marketing\\PindanActivityInviteOrderService' => $baseDir . '/application/services/marketing/PindanActivityInviteOrderService.php', 'App\\Services\\marketing\\PindanActivityInviteOrderService' => $baseDir . '/application/services/marketing/PindanActivityInviteOrderService.php',
'App\\Services\\marketing\\TagService' => $baseDir . '/application/services/marketing/TagService.php',
'App\\Services\\marketing\\TakePlaceService' => $baseDir . '/application/services/marketing/TakePlaceService.php', 'App\\Services\\marketing\\TakePlaceService' => $baseDir . '/application/services/marketing/TakePlaceService.php',
'App\\Services\\shop\\ShopService' => $baseDir . '/application/services/shop/ShopService.php', 'App\\Services\\shop\\ShopService' => $baseDir . '/application/services/shop/ShopService.php',
'App\\Services\\tcc\\Tcc2Service' => $baseDir . '/application/services/tcc/Tcc2Service.php', 'App\\Services\\tcc\\Tcc2Service' => $baseDir . '/application/services/tcc/Tcc2Service.php',
...@@ -167,6 +176,7 @@ return array( ...@@ -167,6 +176,7 @@ return array(
'App\\Services\\user\\Weixin\\ErrorCode' => $baseDir . '/application/services/user/Weixin/ErrorCode.php', 'App\\Services\\user\\Weixin\\ErrorCode' => $baseDir . '/application/services/user/Weixin/ErrorCode.php',
'App\\Services\\user\\Weixin\\Weixin' => $baseDir . '/application/services/user/Weixin/Weixin.php', 'App\\Services\\user\\Weixin\\Weixin' => $baseDir . '/application/services/user/Weixin/Weixin.php',
'App\\Services\\user\\Weixin\\WxBizDataCrypt' => $baseDir . '/application/services/user/Weixin/WxBizDataCrypt.php', 'App\\Services\\user\\Weixin\\WxBizDataCrypt' => $baseDir . '/application/services/user/Weixin/WxBizDataCrypt.php',
'App\\Services\\wx\\GroupChatService' => $baseDir . '/application/services/wx/GroupChatService.php',
'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'BaconQrCode\\Common\\BitArray' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitArray.php', 'BaconQrCode\\Common\\BitArray' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitArray.php',
'BaconQrCode\\Common\\BitMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitMatrix.php', 'BaconQrCode\\Common\\BitMatrix' => $vendorDir . '/bacon/bacon-qr-code/src/Common/BitMatrix.php',
......
...@@ -375,6 +375,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -375,6 +375,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'Api\\PhpUtils\\Common\\IP' => __DIR__ . '/..' . '/api/php_utils/src/Common/IP.php', 'Api\\PhpUtils\\Common\\IP' => __DIR__ . '/..' . '/api/php_utils/src/Common/IP.php',
'Api\\PhpUtils\\Common\\Rsa' => __DIR__ . '/..' . '/api/php_utils/src/Common/Rsa.php', 'Api\\PhpUtils\\Common\\Rsa' => __DIR__ . '/..' . '/api/php_utils/src/Common/Rsa.php',
'Api\\PhpUtils\\Common\\TimeOut' => __DIR__ . '/..' . '/api/php_utils/src/Common/TimeOut.php', 'Api\\PhpUtils\\Common\\TimeOut' => __DIR__ . '/..' . '/api/php_utils/src/Common/TimeOut.php',
'Api\\PhpUtils\\EasyWechat\\AppConfig' => __DIR__ . '/..' . '/api/php_utils/src/EasyWechat/AppConfig.php',
'Api\\PhpUtils\\Elastic\\ElasticUtil' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/ElasticUtil.php', 'Api\\PhpUtils\\Elastic\\ElasticUtil' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/ElasticUtil.php',
'Api\\PhpUtils\\Elastic\\Manager\\DocumentManager' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/Manager/DocumentManager.php', 'Api\\PhpUtils\\Elastic\\Manager\\DocumentManager' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/Manager/DocumentManager.php',
'Api\\PhpUtils\\Elastic\\Manager\\IndexManager' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/Manager/IndexManager.php', 'Api\\PhpUtils\\Elastic\\Manager\\IndexManager' => __DIR__ . '/..' . '/api/php_utils/src/Elastic/Manager/IndexManager.php',
...@@ -428,6 +429,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -428,6 +429,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Models\\demo\\mongo\\User' => __DIR__ . '/../..' . '/application/models/demo/mongo/User.php', 'App\\Models\\demo\\mongo\\User' => __DIR__ . '/../..' . '/application/models/demo/mongo/User.php',
'App\\Models\\demo\\mysql\\User' => __DIR__ . '/../..' . '/application/models/demo/mysql/User.php', 'App\\Models\\demo\\mysql\\User' => __DIR__ . '/../..' . '/application/models/demo/mysql/User.php',
'App\\Models\\goods\\mysql\\Category' => __DIR__ . '/../..' . '/application/models/goods/mysql/Category.php', 'App\\Models\\goods\\mysql\\Category' => __DIR__ . '/../..' . '/application/models/goods/mysql/Category.php',
'App\\Models\\goods\\mysql\\ErshouGoodsSku' => __DIR__ . '/../..' . '/application/models/goods/mysql/ErshouGoodsSku.php',
'App\\Models\\goods\\mysql\\GoodsOperationRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsOperationRecord.php', 'App\\Models\\goods\\mysql\\GoodsOperationRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsOperationRecord.php',
'App\\Models\\goods\\mysql\\GoodsRefundRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsRefundRecord.php', 'App\\Models\\goods\\mysql\\GoodsRefundRecord' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsRefundRecord.php',
'App\\Models\\goods\\mysql\\GoodsSku' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsSku.php', 'App\\Models\\goods\\mysql\\GoodsSku' => __DIR__ . '/../..' . '/application/models/goods/mysql/GoodsSku.php',
...@@ -443,6 +445,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -443,6 +445,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Models\\goods\\mysql\\PindanGoodsSnapshot' => __DIR__ . '/../..' . '/application/models/goods/mysql/PindanGoodsSnapshot.php', 'App\\Models\\goods\\mysql\\PindanGoodsSnapshot' => __DIR__ . '/../..' . '/application/models/goods/mysql/PindanGoodsSnapshot.php',
'App\\Models\\goods\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/goods/mysql/Shop.php', 'App\\Models\\goods\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/goods/mysql/Shop.php',
'App\\Models\\goods\\mysql\\Tcc' => __DIR__ . '/../..' . '/application/models/goods/mysql/Tcc.php', 'App\\Models\\goods\\mysql\\Tcc' => __DIR__ . '/../..' . '/application/models/goods/mysql/Tcc.php',
'App\\Models\\marketing\\mysql\\BusinessCircle' => __DIR__ . '/../..' . '/application/models/marketing/mysql/BusinessCircle.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorColonel' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorColonel.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorColonel' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorColonel.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorColonelApply' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorColonelApply.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorColonelApply' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorColonelApply.php',
'App\\Models\\marketing\\mysql\\ColonelDistributorConfig' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorConfig.php', 'App\\Models\\marketing\\mysql\\ColonelDistributorConfig' => __DIR__ . '/../..' . '/application/models/marketing/mysql/ColonelDistributorConfig.php',
...@@ -456,11 +459,14 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -456,11 +459,14 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Models\\marketing\\mysql\\MarketingPindan' => __DIR__ . '/../..' . '/application/models/marketing/mysql/MarketingPindan.php', 'App\\Models\\marketing\\mysql\\MarketingPindan' => __DIR__ . '/../..' . '/application/models/marketing/mysql/MarketingPindan.php',
'App\\Models\\marketing\\mysql\\MarketingTakePlace' => __DIR__ . '/../..' . '/application/models/marketing/mysql/MarketingTakePlace.php', 'App\\Models\\marketing\\mysql\\MarketingTakePlace' => __DIR__ . '/../..' . '/application/models/marketing/mysql/MarketingTakePlace.php',
'App\\Models\\marketing\\mysql\\QyqGroupleader' => __DIR__ . '/../..' . '/application/models/marketing/mysql/QyqGroupleader.php', 'App\\Models\\marketing\\mysql\\QyqGroupleader' => __DIR__ . '/../..' . '/application/models/marketing/mysql/QyqGroupleader.php',
'App\\Models\\marketing\\mysql\\Tag' => __DIR__ . '/../..' . '/application/models/marketing/mysql/Tag.php',
'App\\Models\\marketing\\mysql\\TakePlace' => __DIR__ . '/../..' . '/application/models/marketing/mysql/TakePlace.php', 'App\\Models\\marketing\\mysql\\TakePlace' => __DIR__ . '/../..' . '/application/models/marketing/mysql/TakePlace.php',
'App\\Models\\shop\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/shop/mysql/Shop.php', 'App\\Models\\shop\\mysql\\Shop' => __DIR__ . '/../..' . '/application/models/shop/mysql/Shop.php',
'App\\Models\\shop\\mysql\\SubShop' => __DIR__ . '/../..' . '/application/models/shop/mysql/SubShop.php', 'App\\Models\\shop\\mysql\\SubShop' => __DIR__ . '/../..' . '/application/models/shop/mysql/SubShop.php',
'App\\Models\\tmp\\mysql\\QyqTicketData' => __DIR__ . '/../..' . '/application/models/tmp/mysql/QyqTicketData.php', 'App\\Models\\tmp\\mysql\\QyqTicketData' => __DIR__ . '/../..' . '/application/models/tmp/mysql/QyqTicketData.php',
'App\\Models\\user\\mysql\\UserWechatBind' => __DIR__ . '/../..' . '/application/models/user/mysql/UserWechatBind.php', 'App\\Models\\user\\mysql\\UserWechatBind' => __DIR__ . '/../..' . '/application/models/user/mysql/UserWechatBind.php',
'App\\Models\\wx\\mysql\\WxGroupChat' => __DIR__ . '/../..' . '/application/models/wx/mysql/WxGroupChat.php',
'App\\Models\\wx\\mysql\\WxGroupChatUser' => __DIR__ . '/../..' . '/application/models/wx/mysql/WxGroupChatUser.php',
'App\\Plugins\\Hook' => __DIR__ . '/../..' . '/application/plugins/Hook.php', 'App\\Plugins\\Hook' => __DIR__ . '/../..' . '/application/plugins/Hook.php',
'App\\Services\\common\\CommonService' => __DIR__ . '/../..' . '/application/services/common/CommonService.php', 'App\\Services\\common\\CommonService' => __DIR__ . '/../..' . '/application/services/common/CommonService.php',
'App\\Services\\common\\KafkaService' => __DIR__ . '/../..' . '/application/services/common/KafkaService.php', 'App\\Services\\common\\KafkaService' => __DIR__ . '/../..' . '/application/services/common/KafkaService.php',
...@@ -469,10 +475,12 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -469,10 +475,12 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Services\\demo\\MysqlService' => __DIR__ . '/../..' . '/application/services/demo/MysqlService.php', 'App\\Services\\demo\\MysqlService' => __DIR__ . '/../..' . '/application/services/demo/MysqlService.php',
'App\\Services\\goods\\CategoryService' => __DIR__ . '/../..' . '/application/services/goods/CategoryService.php', 'App\\Services\\goods\\CategoryService' => __DIR__ . '/../..' . '/application/services/goods/CategoryService.php',
'App\\Services\\goods\\ElasticGoodService' => __DIR__ . '/../..' . '/application/services/goods/ElasticGoodService.php', 'App\\Services\\goods\\ElasticGoodService' => __DIR__ . '/../..' . '/application/services/goods/ElasticGoodService.php',
'App\\Services\\goods\\ErshouGoodsService' => __DIR__ . '/../..' . '/application/services/goods/ErshouGoodsService.php',
'App\\Services\\goods\\GoodsService' => __DIR__ . '/../..' . '/application/services/goods/GoodsService.php', 'App\\Services\\goods\\GoodsService' => __DIR__ . '/../..' . '/application/services/goods/GoodsService.php',
'App\\Services\\goods\\GoodsSnapshotsService' => __DIR__ . '/../..' . '/application/services/goods/GoodsSnapshotsService.php', 'App\\Services\\goods\\GoodsSnapshotsService' => __DIR__ . '/../..' . '/application/services/goods/GoodsSnapshotsService.php',
'App\\Services\\goods\\MarketingPindanGoodsService' => __DIR__ . '/../..' . '/application/services/goods/MarketingPindanGoodsService.php', 'App\\Services\\goods\\MarketingPindanGoodsService' => __DIR__ . '/../..' . '/application/services/goods/MarketingPindanGoodsService.php',
'App\\Services\\goods\\OtaService' => __DIR__ . '/../..' . '/application/services/goods/OtaService.php', 'App\\Services\\goods\\OtaService' => __DIR__ . '/../..' . '/application/services/goods/OtaService.php',
'App\\Services\\marketing\\BusinessCircleService' => __DIR__ . '/../..' . '/application/services/marketing/BusinessCircleService.php',
'App\\Services\\marketing\\ColonelService' => __DIR__ . '/../..' . '/application/services/marketing/ColonelService.php', 'App\\Services\\marketing\\ColonelService' => __DIR__ . '/../..' . '/application/services/marketing/ColonelService.php',
'App\\Services\\marketing\\DistributionService' => __DIR__ . '/../..' . '/application/services/marketing/DistributionService.php', 'App\\Services\\marketing\\DistributionService' => __DIR__ . '/../..' . '/application/services/marketing/DistributionService.php',
'App\\Services\\marketing\\DistributorService' => __DIR__ . '/../..' . '/application/services/marketing/DistributorService.php', 'App\\Services\\marketing\\DistributorService' => __DIR__ . '/../..' . '/application/services/marketing/DistributorService.php',
...@@ -481,6 +489,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -481,6 +489,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Services\\marketing\\MarketingService' => __DIR__ . '/../..' . '/application/services/marketing/MarketingService.php', 'App\\Services\\marketing\\MarketingService' => __DIR__ . '/../..' . '/application/services/marketing/MarketingService.php',
'App\\Services\\marketing\\PindanActivityColonelConfigService' => __DIR__ . '/../..' . '/application/services/marketing/PindanActivityColonelConfigService.php', 'App\\Services\\marketing\\PindanActivityColonelConfigService' => __DIR__ . '/../..' . '/application/services/marketing/PindanActivityColonelConfigService.php',
'App\\Services\\marketing\\PindanActivityInviteOrderService' => __DIR__ . '/../..' . '/application/services/marketing/PindanActivityInviteOrderService.php', 'App\\Services\\marketing\\PindanActivityInviteOrderService' => __DIR__ . '/../..' . '/application/services/marketing/PindanActivityInviteOrderService.php',
'App\\Services\\marketing\\TagService' => __DIR__ . '/../..' . '/application/services/marketing/TagService.php',
'App\\Services\\marketing\\TakePlaceService' => __DIR__ . '/../..' . '/application/services/marketing/TakePlaceService.php', 'App\\Services\\marketing\\TakePlaceService' => __DIR__ . '/../..' . '/application/services/marketing/TakePlaceService.php',
'App\\Services\\shop\\ShopService' => __DIR__ . '/../..' . '/application/services/shop/ShopService.php', 'App\\Services\\shop\\ShopService' => __DIR__ . '/../..' . '/application/services/shop/ShopService.php',
'App\\Services\\tcc\\Tcc2Service' => __DIR__ . '/../..' . '/application/services/tcc/Tcc2Service.php', 'App\\Services\\tcc\\Tcc2Service' => __DIR__ . '/../..' . '/application/services/tcc/Tcc2Service.php',
...@@ -489,6 +498,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e ...@@ -489,6 +498,7 @@ class ComposerStaticInite9c1cf708c572b30ccbaa1adb865583e
'App\\Services\\user\\Weixin\\ErrorCode' => __DIR__ . '/../..' . '/application/services/user/Weixin/ErrorCode.php', 'App\\Services\\user\\Weixin\\ErrorCode' => __DIR__ . '/../..' . '/application/services/user/Weixin/ErrorCode.php',
'App\\Services\\user\\Weixin\\Weixin' => __DIR__ . '/../..' . '/application/services/user/Weixin/Weixin.php', 'App\\Services\\user\\Weixin\\Weixin' => __DIR__ . '/../..' . '/application/services/user/Weixin/Weixin.php',
'App\\Services\\user\\Weixin\\WxBizDataCrypt' => __DIR__ . '/../..' . '/application/services/user/Weixin/WxBizDataCrypt.php', 'App\\Services\\user\\Weixin\\WxBizDataCrypt' => __DIR__ . '/../..' . '/application/services/user/Weixin/WxBizDataCrypt.php',
'App\\Services\\wx\\GroupChatService' => __DIR__ . '/../..' . '/application/services/wx/GroupChatService.php',
'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php', 'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
'BaconQrCode\\Common\\BitArray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitArray.php', 'BaconQrCode\\Common\\BitArray' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitArray.php',
'BaconQrCode\\Common\\BitMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitMatrix.php', 'BaconQrCode\\Common\\BitMatrix' => __DIR__ . '/..' . '/bacon/bacon-qr-code/src/Common/BitMatrix.php',
......
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
}, },
{ {
"name": "api/php_utils", "name": "api/php_utils",
"version": "v1.0.18", "version": "v1.0.21",
"version_normalized": "1.0.18.0", "version_normalized": "1.0.21.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.yidian-inc.com:8021/bp/php_utils.git", "url": "https://git.yidian-inc.com:8021/bp/php_utils.git",
"reference": "33b06adcf6eae99ada39b67c9fb28802a17cb528" "reference": "82fc4f6fb8db04525404f8c8d8da0969dd911a9f"
}, },
"require": { "require": {
"elasticsearch/elasticsearch": "~7.0", "elasticsearch/elasticsearch": "~7.0",
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
"overtrue/wechat": "^4.2", "overtrue/wechat": "^4.2",
"php": "7.2.*" "php": "7.2.*"
}, },
"time": "2021-09-27T11:58:04+00:00", "time": "2021-10-11T03:14:07+00:00",
"type": "library", "type": "library",
"installation-source": "source", "installation-source": "source",
"autoload": { "autoload": {
...@@ -605,19 +605,13 @@ ...@@ -605,19 +605,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/promises.git", "url": "https://github.com/guzzle/promises.git",
"reference": "c1dd809c8f51a477701052f4b9e5b4bb5c1061aa" "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/c1dd809c8f51a477701052f4b9e5b4bb5c1061aa", "url": "https://api.github.com/repos/guzzle/promises/zipball/136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
"reference": "c1dd809c8f51a477701052f4b9e5b4bb5c1061aa", "reference": "136a635e2b4a49b9d79e9c8fee267ffb257fdba0",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.5" "php": ">=5.5"
...@@ -625,12 +619,12 @@ ...@@ -625,12 +619,12 @@
"require-dev": { "require-dev": {
"symfony/phpunit-bridge": "^4.4 || ^5.1" "symfony/phpunit-bridge": "^4.4 || ^5.1"
}, },
"time": "2021-09-05T15:38:28+00:00", "time": "2021-10-07T13:05:22+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"installation-source": "dist", "installation-source": "dist",
...@@ -674,7 +668,7 @@ ...@@ -674,7 +668,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/guzzle/promises/issues", "issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/master" "source": "https://github.com/guzzle/promises/tree/1.5.0"
}, },
"funding": [ "funding": [
{ {
...@@ -699,19 +693,13 @@ ...@@ -699,19 +693,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/guzzle/psr7.git", "url": "https://github.com/guzzle/psr7.git",
"reference": "9d006741ba865a45adccfac45d8e1053086a5a3f" "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/9d006741ba865a45adccfac45d8e1053086a5a3f", "url": "https://api.github.com/repos/guzzle/psr7/zipball/1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"reference": "9d006741ba865a45adccfac45d8e1053086a5a3f", "reference": "1afdd860a2566ed3c2b0b4a3de6e23434a79ec85",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.4.0", "php": ">=5.4.0",
...@@ -728,7 +716,7 @@ ...@@ -728,7 +716,7 @@
"suggest": { "suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
}, },
"time": "2021-09-05T19:11:18+00:00", "time": "2021-10-05T13:56:00+00:00",
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
...@@ -795,6 +783,20 @@ ...@@ -795,6 +783,20 @@
"issues": "https://github.com/guzzle/psr7/issues", "issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/1.x" "source": "https://github.com/guzzle/psr7/tree/1.x"
}, },
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"install-path": "../guzzlehttp/psr7" "install-path": "../guzzlehttp/psr7"
}, },
{ {
...@@ -941,19 +943,13 @@ ...@@ -941,19 +943,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/monolog.git", "url": "https://github.com/Seldaek/monolog.git",
"reference": "437e7a1c50044b92773b361af77620efb76fff59" "reference": "d1c28292689764504cbaab2beec8ddd0a54bcc1c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/437e7a1c50044b92773b361af77620efb76fff59", "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d1c28292689764504cbaab2beec8ddd0a54bcc1c",
"reference": "437e7a1c50044b92773b361af77620efb76fff59", "reference": "d1c28292689764504cbaab2beec8ddd0a54bcc1c",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2", "php": ">=7.2",
...@@ -968,7 +964,7 @@ ...@@ -968,7 +964,7 @@
"elasticsearch/elasticsearch": "^7", "elasticsearch/elasticsearch": "^7",
"graylog2/gelf-php": "^1.4.2", "graylog2/gelf-php": "^1.4.2",
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4 || ^3",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpspec/prophecy": "^1.6.1", "phpspec/prophecy": "^1.6.1",
"phpstan/phpstan": "^0.12.91", "phpstan/phpstan": "^0.12.91",
...@@ -995,7 +991,7 @@ ...@@ -995,7 +991,7 @@
"rollbar/rollbar": "Allow sending log messages to Rollbar", "rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server" "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
}, },
"time": "2021-09-15T11:27:21+00:00", "time": "2021-10-02T20:05:18+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1029,7 +1025,7 @@ ...@@ -1029,7 +1025,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/Seldaek/monolog/issues", "issues": "https://github.com/Seldaek/monolog/issues",
"source": "https://github.com/Seldaek/monolog/tree/2.3.4" "source": "https://github.com/Seldaek/monolog/tree/main"
}, },
"funding": [ "funding": [
{ {
...@@ -1189,12 +1185,12 @@ ...@@ -1189,12 +1185,12 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/w7corp/easywechat.git", "url": "https://github.com/w7corp/easywechat.git",
"reference": "00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54" "reference": "0907070e17e4420c4ea73e6daac492ac74add9b9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/w7corp/easywechat/zipball/00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54", "url": "https://api.github.com/repos/w7corp/easywechat/zipball/0907070e17e4420c4ea73e6daac492ac74add9b9",
"reference": "00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54", "reference": "0907070e17e4420c4ea73e6daac492ac74add9b9",
"shasum": "", "shasum": "",
"mirrors": [ "mirrors": [
{ {
...@@ -1226,7 +1222,7 @@ ...@@ -1226,7 +1222,7 @@
"phpstan/phpstan": "^0.12.0", "phpstan/phpstan": "^0.12.0",
"phpunit/phpunit": "^7.5" "phpunit/phpunit": "^7.5"
}, },
"time": "2021-06-30T12:54:00+00:00", "time": "2021-09-28T11:01:33+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
...@@ -1715,24 +1711,18 @@ ...@@ -1715,24 +1711,18 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/php-fig/simple-cache.git", "url": "https://github.com/php-fig/simple-cache.git",
"reference": "5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474" "reference": "66e27efc65ddef47d3008c243a235ab9359b5754"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/php-fig/simple-cache/zipball/5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474", "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/66e27efc65ddef47d3008c243a235ab9359b5754",
"reference": "5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474", "reference": "66e27efc65ddef47d3008c243a235ab9359b5754",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=5.3.0" "php": ">=5.3.0"
}, },
"time": "2020-04-21T06:43:17+00:00", "time": "2021-10-06T11:02:22+00:00",
"default-branch": true, "default-branch": true,
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1753,7 +1743,7 @@ ...@@ -1753,7 +1743,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"description": "Common interfaces for simple caching", "description": "Common interfaces for simple caching",
...@@ -1898,19 +1888,13 @@ ...@@ -1898,19 +1888,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/cache.git", "url": "https://github.com/symfony/cache.git",
"reference": "772bc130c5ed31bd5616c4806145b73b07b8c149" "reference": "ccf2fb68a8ac525c2f00dcf81b79237b569dbc87"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/772bc130c5ed31bd5616c4806145b73b07b8c149", "url": "https://api.github.com/repos/symfony/cache/zipball/ccf2fb68a8ac525c2f00dcf81b79237b569dbc87",
"reference": "772bc130c5ed31bd5616c4806145b73b07b8c149", "reference": "ccf2fb68a8ac525c2f00dcf81b79237b569dbc87",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -1924,7 +1908,7 @@ ...@@ -1924,7 +1908,7 @@
"symfony/var-exporter": "^4.4|^5.0|^6.0" "symfony/var-exporter": "^4.4|^5.0|^6.0"
}, },
"conflict": { "conflict": {
"doctrine/dbal": "<2.10", "doctrine/dbal": "<2.13",
"symfony/dependency-injection": "<4.4", "symfony/dependency-injection": "<4.4",
"symfony/http-kernel": "<4.4", "symfony/http-kernel": "<4.4",
"symfony/var-dumper": "<4.4" "symfony/var-dumper": "<4.4"
...@@ -1937,7 +1921,7 @@ ...@@ -1937,7 +1921,7 @@
"require-dev": { "require-dev": {
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/cache": "^1.6|^2.0", "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.10|^3.0", "doctrine/dbal": "^2.13|^3.0",
"predis/predis": "^1.1", "predis/predis": "^1.1",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
"symfony/config": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0",
...@@ -1947,7 +1931,7 @@ ...@@ -1947,7 +1931,7 @@
"symfony/messenger": "^4.4|^5.0|^6.0", "symfony/messenger": "^4.4|^5.0|^6.0",
"symfony/var-dumper": "^4.4|^5.0|^6.0" "symfony/var-dumper": "^4.4|^5.0|^6.0"
}, },
"time": "2021-09-26T19:04:13+00:00", "time": "2021-10-06T07:48:19+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
...@@ -2087,8 +2071,8 @@ ...@@ -2087,8 +2071,8 @@
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "dev-main", "version": "2.5.x-dev",
"version_normalized": "dev-main", "version_normalized": "2.5.9999999.9999999-dev",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
...@@ -2098,19 +2082,12 @@ ...@@ -2098,19 +2082,12 @@
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.1" "php": ">=7.1"
}, },
"time": "2021-07-12T14:48:14+00:00", "time": "2021-07-12T14:48:14+00:00",
"default-branch": true,
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
...@@ -2351,19 +2328,13 @@ ...@@ -2351,19 +2328,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/http-foundation.git", "url": "https://github.com/symfony/http-foundation.git",
"reference": "65808acd52ee65add91353cde5cb432021a9ca43" "reference": "2561c6bf1835db30b129788ba1143bea1f49849c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/65808acd52ee65add91353cde5cb432021a9ca43", "url": "https://api.github.com/repos/symfony/http-foundation/zipball/2561c6bf1835db30b129788ba1143bea1f49849c",
"reference": "65808acd52ee65add91353cde5cb432021a9ca43", "reference": "2561c6bf1835db30b129788ba1143bea1f49849c",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -2380,7 +2351,7 @@ ...@@ -2380,7 +2351,7 @@
"suggest": { "suggest": {
"symfony/mime": "To use the file extension guesser" "symfony/mime": "To use the file extension guesser"
}, },
"time": "2021-09-14T13:02:56+00:00", "time": "2021-10-04T18:34:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
...@@ -3141,19 +3112,13 @@ ...@@ -3141,19 +3112,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/property-info.git", "url": "https://github.com/symfony/property-info.git",
"reference": "903f3f3f6a360bc4739f8390e5031acc70d9cd9f" "reference": "505502817d5caafbfca3efb25ae720122d9ffdcd"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/property-info/zipball/903f3f3f6a360bc4739f8390e5031acc70d9cd9f", "url": "https://api.github.com/repos/symfony/property-info/zipball/505502817d5caafbfca3efb25ae720122d9ffdcd",
"reference": "903f3f3f6a360bc4739f8390e5031acc70d9cd9f", "reference": "505502817d5caafbfca3efb25ae720122d9ffdcd",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.2.5", "php": ">=7.2.5",
...@@ -3179,7 +3144,7 @@ ...@@ -3179,7 +3144,7 @@
"symfony/doctrine-bridge": "To use Doctrine metadata", "symfony/doctrine-bridge": "To use Doctrine metadata",
"symfony/serializer": "To use Serializer metadata" "symfony/serializer": "To use Serializer metadata"
}, },
"time": "2021-09-07T15:45:17+00:00", "time": "2021-10-04T18:34:22+00:00",
"type": "library", "type": "library",
"installation-source": "dist", "installation-source": "dist",
"autoload": { "autoload": {
...@@ -3240,19 +3205,13 @@ ...@@ -3240,19 +3205,13 @@
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git", "url": "https://github.com/symfony/psr-http-message-bridge.git",
"reference": "d558dcde0b4f6a808f66702abd3c1617572f621b" "reference": "824711c9099e7c6808041e1144eaeac5285e4a67"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/d558dcde0b4f6a808f66702abd3c1617572f621b", "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/824711c9099e7c6808041e1144eaeac5285e4a67",
"reference": "d558dcde0b4f6a808f66702abd3c1617572f621b", "reference": "824711c9099e7c6808041e1144eaeac5285e4a67",
"shasum": "", "shasum": ""
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
}, },
"require": { "require": {
"php": ">=7.1", "php": ">=7.1",
...@@ -3272,7 +3231,7 @@ ...@@ -3272,7 +3231,7 @@
"suggest": { "suggest": {
"nyholm/psr7": "For a super lightweight PSR-7/17 implementation" "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
}, },
"time": "2021-08-04T21:33:41+00:00", "time": "2021-10-06T15:48:45+00:00",
"default-branch": true, "default-branch": true,
"type": "symfony-bridge", "type": "symfony-bridge",
"extra": { "extra": {
......
<?php return array( <?php return array(
'root' => array( 'root' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-develop',
'version' => 'dev-master', 'version' => 'dev-develop',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '40f8b230881d7a86438dc069837b93af2d6b8b73', 'reference' => 'ebb9b15da4e0c73c85b3d5032eaba6f705e925ed',
'name' => 'yidian/yaf_demo', 'name' => 'yidian/yaf_demo',
'dev' => true, 'dev' => true,
), ),
...@@ -20,12 +20,12 @@ ...@@ -20,12 +20,12 @@
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'api/php_utils' => array( 'api/php_utils' => array(
'pretty_version' => 'v1.0.18', 'pretty_version' => 'v1.0.21',
'version' => '1.0.18.0', 'version' => '1.0.21.0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../api/php_utils', 'install_path' => __DIR__ . '/../api/php_utils',
'aliases' => array(), 'aliases' => array(),
'reference' => '33b06adcf6eae99ada39b67c9fb28802a17cb528', 'reference' => '82fc4f6fb8db04525404f8c8d8da0969dd911a9f',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'bacon/bacon-qr-code' => array( 'bacon/bacon-qr-code' => array(
...@@ -110,9 +110,9 @@ ...@@ -110,9 +110,9 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/promises', 'install_path' => __DIR__ . '/../guzzlehttp/promises',
'aliases' => array( 'aliases' => array(
0 => '1.4.x-dev', 0 => '1.5.x-dev',
), ),
'reference' => 'c1dd809c8f51a477701052f4b9e5b4bb5c1061aa', 'reference' => '136a635e2b4a49b9d79e9c8fee267ffb257fdba0',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'guzzlehttp/psr7' => array( 'guzzlehttp/psr7' => array(
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'install_path' => __DIR__ . '/../guzzlehttp/psr7',
'aliases' => array(), 'aliases' => array(),
'reference' => '9d006741ba865a45adccfac45d8e1053086a5a3f', 'reference' => '1afdd860a2566ed3c2b0b4a3de6e23434a79ec85',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'khanamiryan/qrcode-detector-decoder' => array( 'khanamiryan/qrcode-detector-decoder' => array(
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
'aliases' => array( 'aliases' => array(
0 => '2.x-dev', 0 => '2.x-dev',
), ),
'reference' => '437e7a1c50044b92773b361af77620efb76fff59', 'reference' => 'd1c28292689764504cbaab2beec8ddd0a54bcc1c',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'myclabs/php-enum' => array( 'myclabs/php-enum' => array(
...@@ -177,7 +177,7 @@ ...@@ -177,7 +177,7 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../overtrue/wechat', 'install_path' => __DIR__ . '/../overtrue/wechat',
'aliases' => array(), 'aliases' => array(),
'reference' => '00f72fb0113ad1aa47bcf350c3dd4c3af1cd1f54', 'reference' => '0907070e17e4420c4ea73e6daac492ac74add9b9',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'perftools/php-profiler' => array( 'perftools/php-profiler' => array(
...@@ -279,7 +279,7 @@ ...@@ -279,7 +279,7 @@
'aliases' => array( 'aliases' => array(
0 => '1.0.x-dev', 0 => '1.0.x-dev',
), ),
'reference' => '5a7b96b1dda5d957e01bc1bfe77dcca09c5a7474', 'reference' => '66e27efc65ddef47d3008c243a235ab9359b5754',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'psr/simple-cache-implementation' => array( 'psr/simple-cache-implementation' => array(
...@@ -312,7 +312,7 @@ ...@@ -312,7 +312,7 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/cache', 'install_path' => __DIR__ . '/../symfony/cache',
'aliases' => array(), 'aliases' => array(),
'reference' => '772bc130c5ed31bd5616c4806145b73b07b8c149', 'reference' => 'ccf2fb68a8ac525c2f00dcf81b79237b569dbc87',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/cache-contracts' => array( 'symfony/cache-contracts' => array(
...@@ -331,13 +331,11 @@ ...@@ -331,13 +331,11 @@
), ),
), ),
'symfony/deprecation-contracts' => array( 'symfony/deprecation-contracts' => array(
'pretty_version' => 'dev-main', 'pretty_version' => '2.5.x-dev',
'version' => 'dev-main', 'version' => '2.5.9999999.9999999-dev',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/deprecation-contracts', 'install_path' => __DIR__ . '/../symfony/deprecation-contracts',
'aliases' => array( 'aliases' => array(),
0 => '2.5.x-dev',
),
'reference' => '6f981ee24cf69ee7ce9736146d1c57c2780598a8', 'reference' => '6f981ee24cf69ee7ce9736146d1c57c2780598a8',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
...@@ -371,7 +369,7 @@ ...@@ -371,7 +369,7 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/http-foundation', 'install_path' => __DIR__ . '/../symfony/http-foundation',
'aliases' => array(), 'aliases' => array(),
'reference' => '65808acd52ee65add91353cde5cb432021a9ca43', 'reference' => '2561c6bf1835db30b129788ba1143bea1f49849c',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/options-resolver' => array( 'symfony/options-resolver' => array(
...@@ -464,7 +462,7 @@ ...@@ -464,7 +462,7 @@
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../symfony/property-info', 'install_path' => __DIR__ . '/../symfony/property-info',
'aliases' => array(), 'aliases' => array(),
'reference' => '903f3f3f6a360bc4739f8390e5031acc70d9cd9f', 'reference' => '505502817d5caafbfca3efb25ae720122d9ffdcd',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/psr-http-message-bridge' => array( 'symfony/psr-http-message-bridge' => array(
...@@ -475,7 +473,7 @@ ...@@ -475,7 +473,7 @@
'aliases' => array( 'aliases' => array(
0 => '2.1.x-dev', 0 => '2.1.x-dev',
), ),
'reference' => 'd558dcde0b4f6a808f66702abd3c1617572f621b', 'reference' => '824711c9099e7c6808041e1144eaeac5285e4a67',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'symfony/service-contracts' => array( 'symfony/service-contracts' => array(
...@@ -506,12 +504,12 @@ ...@@ -506,12 +504,12 @@
'dev_requirement' => false, 'dev_requirement' => false,
), ),
'yidian/yaf_demo' => array( 'yidian/yaf_demo' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-develop',
'version' => 'dev-master', 'version' => 'dev-develop',
'type' => 'project', 'type' => 'project',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
'reference' => '40f8b230881d7a86438dc069837b93af2d6b8b73', 'reference' => 'ebb9b15da4e0c73c85b3d5032eaba6f705e925ed',
'dev_requirement' => false, 'dev_requirement' => false,
), ),
), ),
......
# CHANGELOG # CHANGELOG
## 1.5.0 - 2021-10-07
### Changed
- Call handler when waiting on fulfilled/rejected Promise
### Fixed
- Fix manually settle promises generated with Utils::task
## 1.4.1 - 2021-02-18 ## 1.4.1 - 2021-02-18
### Fixed
- Fixed `each_limit` skipping promises and failing - Fixed `each_limit` skipping promises and failing
## 1.4.0 - 2020-09-30 ## 1.4.0 - 2020-09-30
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
}, },
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.4-dev" "dev-master": "1.5-dev"
} }
}, },
"config": { "config": {
......
...@@ -12,6 +12,12 @@ class FulfilledPromise implements PromiseInterface ...@@ -12,6 +12,12 @@ class FulfilledPromise implements PromiseInterface
{ {
private $value; private $value;
/** @var Promise|null */
private $promise;
/** @var callable|null */
private $onFulfilled;
public function __construct($value) public function __construct($value)
{ {
if (is_object($value) && method_exists($value, 'then')) { if (is_object($value) && method_exists($value, 'then')) {
...@@ -32,18 +38,14 @@ class FulfilledPromise implements PromiseInterface ...@@ -32,18 +38,14 @@ class FulfilledPromise implements PromiseInterface
return $this; return $this;
} }
$this->onFulfilled = $onFulfilled;
$queue = Utils::queue(); $queue = Utils::queue();
$p = new Promise([$queue, 'run']); $p = $this->promise = new Promise([$queue, 'run']);
$value = $this->value; $value = $this->value;
$queue->add(static function () use ($p, $value, $onFulfilled) { $queue->add(static function () use ($p, $value, $onFulfilled) {
if (Is::pending($p)) { if (Is::pending($p)) {
try { self::callHandler($p, $value, $onFulfilled);
$p->resolve($onFulfilled($value));
} catch (\Throwable $e) {
$p->reject($e);
} catch (\Exception $e) {
$p->reject($e);
}
} }
}); });
...@@ -57,6 +59,11 @@ class FulfilledPromise implements PromiseInterface ...@@ -57,6 +59,11 @@ class FulfilledPromise implements PromiseInterface
public function wait($unwrap = true, $defaultDelivery = null) public function wait($unwrap = true, $defaultDelivery = null)
{ {
// Don't run the queue to avoid deadlocks, instead directly resolve the promise.
if ($this->promise && Is::pending($this->promise)) {
self::callHandler($this->promise, $this->value, $this->onFulfilled);
}
return $unwrap ? $this->value : null; return $unwrap ? $this->value : null;
} }
...@@ -81,4 +88,15 @@ class FulfilledPromise implements PromiseInterface ...@@ -81,4 +88,15 @@ class FulfilledPromise implements PromiseInterface
{ {
// pass // pass
} }
private static function callHandler(Promise $promise, $value, callable $handler)
{
try {
$promise->resolve($handler($value));
} catch (\Throwable $e) {
$promise->reject($e);
} catch (\Exception $e) {
$promise->reject($e);
}
}
} }
...@@ -12,6 +12,12 @@ class RejectedPromise implements PromiseInterface ...@@ -12,6 +12,12 @@ class RejectedPromise implements PromiseInterface
{ {
private $reason; private $reason;
/** @var Promise|null */
private $promise;
/** @var callable|null */
private $onRejected;
public function __construct($reason) public function __construct($reason)
{ {
if (is_object($reason) && method_exists($reason, 'then')) { if (is_object($reason) && method_exists($reason, 'then')) {
...@@ -32,21 +38,14 @@ class RejectedPromise implements PromiseInterface ...@@ -32,21 +38,14 @@ class RejectedPromise implements PromiseInterface
return $this; return $this;
} }
$this->onRejected = $onRejected;
$queue = Utils::queue(); $queue = Utils::queue();
$reason = $this->reason; $reason = $this->reason;
$p = new Promise([$queue, 'run']); $p = $this->promise = new Promise([$queue, 'run']);
$queue->add(static function () use ($p, $reason, $onRejected) { $queue->add(static function () use ($p, $reason, $onRejected) {
if (Is::pending($p)) { if (Is::pending($p)) {
try { self::callHandler($p, $reason, $onRejected);
// Return a resolved promise if onRejected does not throw.
$p->resolve($onRejected($reason));
} catch (\Throwable $e) {
// onRejected threw, so return a rejected promise.
$p->reject($e);
} catch (\Exception $e) {
// onRejected threw, so return a rejected promise.
$p->reject($e);
}
} }
}); });
...@@ -64,6 +63,11 @@ class RejectedPromise implements PromiseInterface ...@@ -64,6 +63,11 @@ class RejectedPromise implements PromiseInterface
throw Create::exceptionFor($this->reason); throw Create::exceptionFor($this->reason);
} }
// Don't run the queue to avoid deadlocks, instead directly reject the promise.
if ($this->promise && Is::pending($this->promise)) {
self::callHandler($this->promise, $this->reason, $this->onRejected);
}
return null; return null;
} }
...@@ -88,4 +92,15 @@ class RejectedPromise implements PromiseInterface ...@@ -88,4 +92,15 @@ class RejectedPromise implements PromiseInterface
{ {
// pass // pass
} }
private static function callHandler(Promise $promise, $reason, callable $handler)
{
try {
$promise->resolve($handler($reason));
} catch (\Throwable $e) {
$promise->reject($e);
} catch (\Exception $e) {
$promise->reject($e);
}
}
} }
...@@ -48,7 +48,9 @@ final class Utils ...@@ -48,7 +48,9 @@ final class Utils
$promise = new Promise([$queue, 'run']); $promise = new Promise([$queue, 'run']);
$queue->add(function () use ($task, $promise) { $queue->add(function () use ($task, $promise) {
try { try {
if (Is::pending($promise)) {
$promise->resolve($task()); $promise->resolve($task());
}
} catch (\Throwable $e) { } catch (\Throwable $e) {
$promise->reject($e); $promise->reject($e);
} catch (\Exception $e) { } catch (\Exception $e) {
......
...@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ...@@ -9,6 +9,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## Unreleased ## Unreleased
## 1.8.3 - 2021-10-05
### Fixed
- Return `null` in caching stream size if remote size is `null`
## 1.8.2 - 2021-04-26 ## 1.8.2 - 2021-04-26
### Fixed ### Fixed
......
...@@ -36,7 +36,13 @@ class CachingStream implements StreamInterface ...@@ -36,7 +36,13 @@ class CachingStream implements StreamInterface
public function getSize() public function getSize()
{ {
return max($this->stream->getSize(), $this->remoteStream->getSize()); $remoteSize = $this->remoteStream->getSize();
if (null === $remoteSize) {
return null;
}
return max($this->stream->getSize(), $remoteSize);
} }
public function rewind() public function rewind()
......
### 2.3.5 (2021-10-01)
* Fixed regression in StreamHandler since 2.3.3 on systems with the memory_limit set to >=20GB (#1592)
### 2.3.4 (2021-09-15) ### 2.3.4 (2021-09-15)
* Fixed support for psr/log 3.x (#1589) * Fixed support for psr/log 3.x (#1589)
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"elasticsearch/elasticsearch": "^7", "elasticsearch/elasticsearch": "^7",
"mongodb/mongodb": "^1.8", "mongodb/mongodb": "^1.8",
"graylog2/gelf-php": "^1.4.2", "graylog2/gelf-php": "^1.4.2",
"php-amqplib/php-amqplib": "~2.4", "php-amqplib/php-amqplib": "~2.4 || ^3",
"php-console/php-console": "^3.1.3", "php-console/php-console": "^3.1.3",
"phpspec/prophecy": "^1.6.1", "phpspec/prophecy": "^1.6.1",
"phpunit/phpunit": "^8.5", "phpunit/phpunit": "^8.5",
...@@ -68,8 +68,8 @@ ...@@ -68,8 +68,8 @@
"phpstan": "vendor/bin/phpstan analyse" "phpstan": "vendor/bin/phpstan analyse"
}, },
"config": { "config": {
"lock": false,
"sort-packages": true, "sort-packages": true,
"platform-check": false "platform-check": false
}, }
"lock": false
} }
...@@ -26,9 +26,11 @@ use Monolog\Utils; ...@@ -26,9 +26,11 @@ use Monolog\Utils;
class StreamHandler extends AbstractProcessingHandler class StreamHandler extends AbstractProcessingHandler
{ {
/** @const int */ /** @const int */
protected const MAX_CHUNK_SIZE = 100 * 1024 * 1024; protected const MAX_CHUNK_SIZE = 2147483647;
/** @const int 10MB */
protected const DEFAULT_CHUNK_SIZE = 10 * 1024 * 1024;
/** @var int */ /** @var int */
protected $streamChunkSize = self::MAX_CHUNK_SIZE; protected $streamChunkSize;
/** @var resource|null */ /** @var resource|null */
protected $stream; protected $stream;
/** @var ?string */ /** @var ?string */
...@@ -55,13 +57,15 @@ class StreamHandler extends AbstractProcessingHandler ...@@ -55,13 +57,15 @@ class StreamHandler extends AbstractProcessingHandler
if (($phpMemoryLimit = Utils::expandIniShorthandBytes(ini_get('memory_limit'))) !== false) { if (($phpMemoryLimit = Utils::expandIniShorthandBytes(ini_get('memory_limit'))) !== false) {
if ($phpMemoryLimit > 0) { if ($phpMemoryLimit > 0) {
// use max 10% of allowed memory for the chunk size // use max 10% of allowed memory for the chunk size, and at least 100KB
$this->streamChunkSize = max((int) ($phpMemoryLimit / 10), 10*1024); $this->streamChunkSize = min(static::MAX_CHUNK_SIZE, max((int) ($phpMemoryLimit / 10), 100 * 1024));
} else {
// memory is unlimited, set to the default 10MB
$this->streamChunkSize = static::DEFAULT_CHUNK_SIZE;
} }
// else memory is unlimited, keep the buffer to the default 100MB
} else { } else {
// no memory limit information, use a conservative 10MB // no memory limit information, set to the default 10MB
$this->streamChunkSize = 10*10*1024; $this->streamChunkSize = static::DEFAULT_CHUNK_SIZE;
} }
if (is_resource($stream)) { if (is_resource($stream)) {
......
...@@ -164,10 +164,11 @@ class Client extends BaseClient ...@@ -164,10 +164,11 @@ class Client extends BaseClient
* @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException * @throws \EasyWeChat\Kernel\Exceptions\InvalidConfigException
* @throws \GuzzleHttp\Exception\GuzzleException * @throws \GuzzleHttp\Exception\GuzzleException
*/ */
public function getGroupChat(string $chatId) public function getGroupChat(string $chatId, int $needName = 0)
{ {
$params = [ $params = [
'chat_id' => $chatId, 'chat_id' => $chatId,
'need_name' => $needName,
]; ];
return $this->httpPostJson('cgi-bin/externalcontact/groupchat/get', $params); return $this->httpPostJson('cgi-bin/externalcontact/groupchat/get', $params);
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
"authors": [ "authors": [
{ {
"name": "PHP-FIG", "name": "PHP-FIG",
"homepage": "http://www.php-fig.org/" "homepage": "https://www.php-fig.org/"
} }
], ],
"require": { "require": {
......
...@@ -12,10 +12,9 @@ ...@@ -12,10 +12,9 @@
namespace Symfony\Component\Cache\Adapter; namespace Symfony\Component\Cache\Adapter;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Doctrine\DBAL\DBALException;
use Doctrine\DBAL\Driver\ServerInfoAwareConnection; use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
use Doctrine\DBAL\DriverManager; use Doctrine\DBAL\DriverManager;
use Doctrine\DBAL\Exception; use Doctrine\DBAL\Exception as DBALException;
use Doctrine\DBAL\Exception\TableNotFoundException; use Doctrine\DBAL\Exception\TableNotFoundException;
use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\ParameterType;
use Doctrine\DBAL\Schema\Schema; use Doctrine\DBAL\Schema\Schema;
...@@ -110,7 +109,6 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface ...@@ -110,7 +109,6 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
* *
* @throws \PDOException When the table already exists * @throws \PDOException When the table already exists
* @throws DBALException When the table already exists * @throws DBALException When the table already exists
* @throws Exception When the table already exists
* @throws \DomainException When an unsupported PDO driver is used * @throws \DomainException When an unsupported PDO driver is used
*/ */
public function createTable() public function createTable()
...@@ -123,7 +121,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface ...@@ -123,7 +121,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
$this->addTableToSchema($schema); $this->addTableToSchema($schema);
foreach ($schema->toSql($conn->getDatabasePlatform()) as $sql) { foreach ($schema->toSql($conn->getDatabasePlatform()) as $sql) {
if (method_exists($conn, 'executeStatement')) { if ($conn instanceof Connection && method_exists($conn, 'executeStatement')) {
$conn->executeStatement($sql); $conn->executeStatement($sql);
} else { } else {
$conn->exec($sql); $conn->exec($sql);
...@@ -158,7 +156,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface ...@@ -158,7 +156,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver)); throw new \DomainException(sprintf('Creating the cache table is currently not implemented for PDO driver "%s".', $this->driver));
} }
if (method_exists($conn, 'executeStatement')) { if ($conn instanceof Connection && method_exists($conn, 'executeStatement')) {
$conn->executeStatement($sql); $conn->executeStatement($sql);
} else { } else {
$conn->exec($sql); $conn->exec($sql);
...@@ -307,7 +305,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface ...@@ -307,7 +305,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
} }
try { try {
if (method_exists($conn, 'executeStatement')) { if ($conn instanceof Connection && method_exists($conn, 'executeStatement')) {
$conn->executeStatement($sql); $conn->executeStatement($sql);
} else { } else {
$conn->exec($sql); $conn->exec($sql);
...@@ -437,7 +435,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface ...@@ -437,7 +435,7 @@ class PdoAdapter extends AbstractAdapter implements PruneableInterface
if (null === $driver && !(\is_object($result) ? $result->rowCount() : $stmt->rowCount())) { if (null === $driver && !(\is_object($result) ? $result->rowCount() : $stmt->rowCount())) {
try { try {
$insertStmt->execute(); $insertStmt->execute();
} catch (DBALException | Exception $e) { } catch (DBALException $e) {
} catch (\PDOException $e) { } catch (\PDOException $e) {
// A concurrent write won, let it be // A concurrent write won, let it be
} }
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
"require-dev": { "require-dev": {
"cache/integration-tests": "dev-master", "cache/integration-tests": "dev-master",
"doctrine/cache": "^1.6|^2.0", "doctrine/cache": "^1.6|^2.0",
"doctrine/dbal": "^2.10|^3.0", "doctrine/dbal": "^2.13|^3.0",
"predis/predis": "^1.1", "predis/predis": "^1.1",
"psr/simple-cache": "^1.0", "psr/simple-cache": "^1.0",
"symfony/config": "^4.4|^5.0|^6.0", "symfony/config": "^4.4|^5.0|^6.0",
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
"symfony/var-dumper": "^4.4|^5.0|^6.0" "symfony/var-dumper": "^4.4|^5.0|^6.0"
}, },
"conflict": { "conflict": {
"doctrine/dbal": "<2.10", "doctrine/dbal": "<2.13",
"symfony/dependency-injection": "<4.4", "symfony/dependency-injection": "<4.4",
"symfony/http-kernel": "<4.4", "symfony/http-kernel": "<4.4",
"symfony/var-dumper": "<4.4" "symfony/var-dumper": "<4.4"
......
...@@ -138,7 +138,7 @@ class Response ...@@ -138,7 +138,7 @@ class Response
* *
* The list of codes is complete according to the * The list of codes is complete according to the
* {@link https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml Hypertext Transfer Protocol (HTTP) Status Code Registry} * {@link https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml Hypertext Transfer Protocol (HTTP) Status Code Registry}
* (last updated 2016-03-01). * (last updated 2021-10-01).
* *
* Unless otherwise noted, the status code is defined in RFC2616. * Unless otherwise noted, the status code is defined in RFC2616.
* *
...@@ -180,14 +180,14 @@ class Response ...@@ -180,14 +180,14 @@ class Response
410 => 'Gone', 410 => 'Gone',
411 => 'Length Required', 411 => 'Length Required',
412 => 'Precondition Failed', 412 => 'Precondition Failed',
413 => 'Payload Too Large', 413 => 'Content Too Large', // RFC-ietf-httpbis-semantics
414 => 'URI Too Long', 414 => 'URI Too Long',
415 => 'Unsupported Media Type', 415 => 'Unsupported Media Type',
416 => 'Range Not Satisfiable', 416 => 'Range Not Satisfiable',
417 => 'Expectation Failed', 417 => 'Expectation Failed',
418 => 'I\'m a teapot', // RFC2324 418 => 'I\'m a teapot', // RFC2324
421 => 'Misdirected Request', // RFC7540 421 => 'Misdirected Request', // RFC7540
422 => 'Unprocessable Entity', // RFC4918 422 => 'Unprocessable Content', // RFC-ietf-httpbis-semantics
423 => 'Locked', // RFC4918 423 => 'Locked', // RFC4918
424 => 'Failed Dependency', // RFC4918 424 => 'Failed Dependency', // RFC4918
425 => 'Too Early', // RFC-ietf-httpbis-replay-04 425 => 'Too Early', // RFC-ietf-httpbis-replay-04
...@@ -1048,10 +1048,10 @@ class Response ...@@ -1048,10 +1048,10 @@ class Response
$ret = []; $ret = [];
foreach ($vary as $item) { foreach ($vary as $item) {
$ret = array_merge($ret, preg_split('/[\s,]+/', $item)); $ret[] = preg_split('/[\s,]+/', $item);
} }
return $ret; return array_merge([], ...$ret);
} }
/** /**
...@@ -1078,8 +1078,6 @@ class Response ...@@ -1078,8 +1078,6 @@ class Response
* If the Response is not modified, it sets the status code to 304 and * If the Response is not modified, it sets the status code to 304 and
* removes the actual content by calling the setNotModified() method. * removes the actual content by calling the setNotModified() method.
* *
* @return bool
*
* @final * @final
*/ */
public function isNotModified(Request $request): bool public function isNotModified(Request $request): bool
......
...@@ -196,7 +196,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property ...@@ -196,7 +196,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property
/** @var DocBlock\Tags\Var_|DocBlock\Tags\Return_|DocBlock\Tags\Param $tag */ /** @var DocBlock\Tags\Var_|DocBlock\Tags\Return_|DocBlock\Tags\Param $tag */
foreach ($docBlock->getTagsByName('param') as $tag) { foreach ($docBlock->getTagsByName('param') as $tag) {
if ($tag && null !== $tag->getType()) { if ($tag && null !== $tag->getType()) {
$types = array_merge($types, $this->phpDocTypeHelper->getTypes($tag->getType())); $types[] = $this->phpDocTypeHelper->getTypes($tag->getType());
} }
} }
...@@ -204,7 +204,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property ...@@ -204,7 +204,7 @@ class PhpDocExtractor implements PropertyDescriptionExtractorInterface, Property
return null; return null;
} }
return $types; return array_merge([], ...$types);
} }
private function getDocBlockFromConstructor(string $class, string $property): ?DocBlock private function getDocBlockFromConstructor(string $class, string $property): ?DocBlock
......
...@@ -364,14 +364,14 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp ...@@ -364,14 +364,14 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp
return $mutator; return $mutator;
} }
$errors = array_merge($errors, $adderAndRemoverErrors); $errors[] = $adderAndRemoverErrors;
foreach ($this->mutatorPrefixes as $mutatorPrefix) { foreach ($this->mutatorPrefixes as $mutatorPrefix) {
$methodName = $mutatorPrefix.$camelized; $methodName = $mutatorPrefix.$camelized;
[$accessible, $methodAccessibleErrors] = $this->isMethodAccessible($reflClass, $methodName, 1); [$accessible, $methodAccessibleErrors] = $this->isMethodAccessible($reflClass, $methodName, 1);
if (!$accessible) { if (!$accessible) {
$errors = array_merge($errors, $methodAccessibleErrors); $errors[] = $methodAccessibleErrors;
continue; continue;
} }
...@@ -392,7 +392,7 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp ...@@ -392,7 +392,7 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp
return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $getsetter, $this->getWriteVisiblityForMethod($method), $method->isStatic()); return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, $getsetter, $this->getWriteVisiblityForMethod($method), $method->isStatic());
} }
$errors = array_merge($errors, $methodAccessibleErrors); $errors[] = $methodAccessibleErrors;
} }
if ($reflClass->hasProperty($property) && ($reflClass->getProperty($property)->getModifiers() & $this->propertyReflectionFlags)) { if ($reflClass->hasProperty($property) && ($reflClass->getProperty($property)->getModifiers() & $this->propertyReflectionFlags)) {
...@@ -407,7 +407,7 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp ...@@ -407,7 +407,7 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp
return new PropertyWriteInfo(PropertyWriteInfo::TYPE_PROPERTY, $property, PropertyWriteInfo::VISIBILITY_PUBLIC, false); return new PropertyWriteInfo(PropertyWriteInfo::TYPE_PROPERTY, $property, PropertyWriteInfo::VISIBILITY_PUBLIC, false);
} }
$errors = array_merge($errors, $methodAccessibleErrors); $errors[] = $methodAccessibleErrors;
} }
if ($allowMagicCall) { if ($allowMagicCall) {
...@@ -416,21 +416,21 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp ...@@ -416,21 +416,21 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp
return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, 'set'.$camelized, PropertyWriteInfo::VISIBILITY_PUBLIC, false); return new PropertyWriteInfo(PropertyWriteInfo::TYPE_METHOD, 'set'.$camelized, PropertyWriteInfo::VISIBILITY_PUBLIC, false);
} }
$errors = array_merge($errors, $methodAccessibleErrors); $errors[] = $methodAccessibleErrors;
} }
if (!$allowAdderRemover && null !== $adderAccessName && null !== $removerAccessName) { if (!$allowAdderRemover && null !== $adderAccessName && null !== $removerAccessName) {
$errors[] = sprintf( $errors[] = [sprintf(
'The property "%s" in class "%s" can be defined with the methods "%s()" but '. 'The property "%s" in class "%s" can be defined with the methods "%s()" but '.
'the new value must be an array or an instance of \Traversable', 'the new value must be an array or an instance of \Traversable',
$property, $property,
$reflClass->getName(), $reflClass->getName(),
implode('()", "', [$adderAccessName, $removerAccessName]) implode('()", "', [$adderAccessName, $removerAccessName])
); )];
} }
$noneProperty = new PropertyWriteInfo(); $noneProperty = new PropertyWriteInfo();
$noneProperty->setErrors($errors); $noneProperty->setErrors(array_merge([], ...$errors));
return $noneProperty; return $noneProperty;
} }
...@@ -727,20 +727,21 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp ...@@ -727,20 +727,21 @@ class ReflectionExtractor implements PropertyListExtractorInterface, PropertyTyp
[$addMethodFound, $addMethodAccessibleErrors] = $this->isMethodAccessible($reflClass, $addMethod, 1); [$addMethodFound, $addMethodAccessibleErrors] = $this->isMethodAccessible($reflClass, $addMethod, 1);
[$removeMethodFound, $removeMethodAccessibleErrors] = $this->isMethodAccessible($reflClass, $removeMethod, 1); [$removeMethodFound, $removeMethodAccessibleErrors] = $this->isMethodAccessible($reflClass, $removeMethod, 1);
$errors = array_merge($errors, $addMethodAccessibleErrors, $removeMethodAccessibleErrors); $errors[] = $addMethodAccessibleErrors;
$errors[] = $removeMethodAccessibleErrors;
if ($addMethodFound && $removeMethodFound) { if ($addMethodFound && $removeMethodFound) {
return [$addMethod, $removeMethod, []]; return [$addMethod, $removeMethod, []];
} }
if ($addMethodFound && !$removeMethodFound) { if ($addMethodFound && !$removeMethodFound) {
$errors[] = sprintf('The add method "%s" in class "%s" was found, but the corresponding remove method "%s" was not found', $addMethod, $reflClass->getName(), $removeMethod); $errors[] = [sprintf('The add method "%s" in class "%s" was found, but the corresponding remove method "%s" was not found', $addMethod, $reflClass->getName(), $removeMethod)];
} elseif (!$addMethodFound && $removeMethodFound) { } elseif (!$addMethodFound && $removeMethodFound) {
$errors[] = sprintf('The remove method "%s" in class "%s" was found, but the corresponding add method "%s" was not found', $removeMethod, $reflClass->getName(), $addMethod); $errors[] = [sprintf('The remove method "%s" in class "%s" was found, but the corresponding add method "%s" was not found', $removeMethod, $reflClass->getName(), $addMethod)];
} }
} }
return [null, null, $errors]; return [null, null, array_merge([], ...$errors)];
} }
/** /**
......
...@@ -19,6 +19,7 @@ jobs: ...@@ -19,6 +19,7 @@ jobs:
deprecations: max[self]=0 deprecations: max[self]=0
- php: '8.0' - php: '8.0'
deps: highest deps: highest
deprecations: max[indirect]=5
steps: steps:
- name: Checkout code - name: Checkout code
......
...@@ -29,39 +29,49 @@ class Message implements MessageInterface ...@@ -29,39 +29,49 @@ class Message implements MessageInterface
{ {
$this->version = $version; $this->version = $version;
$this->headers = $headers; $this->headers = $headers;
$this->body = null === $body ? new Stream() : $body; $this->body = $body ?? new Stream();
} }
public function getProtocolVersion() public function getProtocolVersion(): string
{ {
return $this->version; return $this->version;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withProtocolVersion($version) public function withProtocolVersion($version)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getHeaders() public function getHeaders(): array
{ {
return $this->headers; return $this->headers;
} }
public function hasHeader($name) public function hasHeader($name): bool
{ {
return isset($this->headers[$name]); return isset($this->headers[$name]);
} }
public function getHeader($name) public function getHeader($name): array
{ {
return $this->hasHeader($name) ? $this->headers[$name] : []; return $this->hasHeader($name) ? $this->headers[$name] : [];
} }
public function getHeaderLine($name) public function getHeaderLine($name): string
{ {
return $this->hasHeader($name) ? implode(',', $this->headers[$name]) : ''; return $this->hasHeader($name) ? implode(',', $this->headers[$name]) : '';
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withHeader($name, $value) public function withHeader($name, $value)
{ {
$this->headers[$name] = (array) $value; $this->headers[$name] = (array) $value;
...@@ -69,11 +79,21 @@ class Message implements MessageInterface ...@@ -69,11 +79,21 @@ class Message implements MessageInterface
return $this; return $this;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withAddedHeader($name, $value) public function withAddedHeader($name, $value)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withoutHeader($name) public function withoutHeader($name)
{ {
unset($this->headers[$name]); unset($this->headers[$name]);
...@@ -81,11 +101,16 @@ class Message implements MessageInterface ...@@ -81,11 +101,16 @@ class Message implements MessageInterface
return $this; return $this;
} }
public function getBody() public function getBody(): StreamInterface
{ {
return $this->body; return $this->body;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withBody(StreamInterface $body) public function withBody(StreamInterface $body)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
......
...@@ -28,17 +28,20 @@ class Response extends Message implements ResponseInterface ...@@ -28,17 +28,20 @@ class Response extends Message implements ResponseInterface
$this->statusCode = $statusCode; $this->statusCode = $statusCode;
} }
public function getStatusCode() public function getStatusCode(): int
{ {
return $this->statusCode; return $this->statusCode;
} }
/**
* @return static
*/
public function withStatus($code, $reasonPhrase = '') public function withStatus($code, $reasonPhrase = '')
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getReasonPhrase() public function getReasonPhrase(): string
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
......
...@@ -45,95 +45,156 @@ class ServerRequest extends Message implements ServerRequestInterface ...@@ -45,95 +45,156 @@ class ServerRequest extends Message implements ServerRequestInterface
$this->attributes = $attributes; $this->attributes = $attributes;
} }
public function getRequestTarget() public function getRequestTarget(): string
{ {
return $this->requestTarget; return $this->requestTarget;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withRequestTarget($requestTarget) public function withRequestTarget($requestTarget)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getMethod() public function getMethod(): string
{ {
return $this->method; return $this->method;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withMethod($method) public function withMethod($method)
{ {
throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return UriInterface
*/
public function getUri() public function getUri()
{ {
return $this->uri; return $this->uri;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withUri(UriInterface $uri, $preserveHost = false) public function withUri(UriInterface $uri, $preserveHost = false)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getServerParams() public function getServerParams(): array
{ {
return $this->server; return $this->server;
} }
public function getCookieParams() public function getCookieParams(): array
{ {
return $this->cookies; return $this->cookies;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withCookieParams(array $cookies) public function withCookieParams(array $cookies)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getQueryParams() public function getQueryParams(): array
{ {
return $this->query; return $this->query;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withQueryParams(array $query) public function withQueryParams(array $query)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getUploadedFiles() public function getUploadedFiles(): array
{ {
return $this->uploadedFiles; return $this->uploadedFiles;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withUploadedFiles(array $uploadedFiles) public function withUploadedFiles(array $uploadedFiles)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return array|object|null
*/
public function getParsedBody() public function getParsedBody()
{ {
return $this->data; return $this->data;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withParsedBody($data) public function withParsedBody($data)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function getAttributes() public function getAttributes(): array
{ {
return $this->attributes; return $this->attributes;
} }
/**
* {@inheritdoc}
*
* @return mixed
*/
public function getAttribute($name, $default = null) public function getAttribute($name, $default = null)
{ {
return isset($this->attributes[$name]) ? $this->attributes[$name] : $default; return $this->attributes[$name] ?? $default;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withAttribute($name, $value) public function withAttribute($name, $value)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withoutAttribute($name) public function withoutAttribute($name)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
......
...@@ -26,12 +26,12 @@ class Stream implements StreamInterface ...@@ -26,12 +26,12 @@ class Stream implements StreamInterface
$this->stringContent = $stringContent; $this->stringContent = $stringContent;
} }
public function __toString() public function __toString(): string
{ {
return $this->stringContent; return $this->stringContent;
} }
public function close() public function close(): void
{ {
} }
...@@ -40,61 +40,69 @@ class Stream implements StreamInterface ...@@ -40,61 +40,69 @@ class Stream implements StreamInterface
return fopen('data://text/plain,'.$this->stringContent, 'r'); return fopen('data://text/plain,'.$this->stringContent, 'r');
} }
public function getSize() public function getSize(): ?int
{ {
return null;
} }
public function tell() public function tell(): int
{ {
return 0; return 0;
} }
public function eof() public function eof(): bool
{ {
return $this->eof; return $this->eof;
} }
public function isSeekable() public function isSeekable(): bool
{ {
return true; return true;
} }
public function seek($offset, $whence = \SEEK_SET) public function seek($offset, $whence = \SEEK_SET): void
{ {
} }
public function rewind() public function rewind(): void
{ {
$this->eof = false; $this->eof = false;
} }
public function isWritable() public function isWritable(): bool
{ {
return false; return false;
} }
public function write($string) public function write($string): int
{ {
return \strlen($string);
} }
public function isReadable() public function isReadable(): bool
{ {
return true; return true;
} }
public function read($length) public function read($length): string
{ {
$this->eof = true; $this->eof = true;
return $this->stringContent; return $this->stringContent;
} }
public function getContents() public function getContents(): string
{ {
return $this->stringContent; return $this->stringContent;
} }
/**
* {@inheritdoc}
*
* @return mixed
*/
public function getMetadata($key = null) public function getMetadata($key = null)
{ {
return null;
} }
} }
...@@ -33,32 +33,32 @@ class UploadedFile implements UploadedFileInterface ...@@ -33,32 +33,32 @@ class UploadedFile implements UploadedFileInterface
$this->clientMediaType = $clientMediaType; $this->clientMediaType = $clientMediaType;
} }
public function getStream() public function getStream(): Stream
{ {
return new Stream(file_get_contents($this->filePath)); return new Stream(file_get_contents($this->filePath));
} }
public function moveTo($targetPath) public function moveTo($targetPath): void
{ {
rename($this->filePath, $targetPath); rename($this->filePath, $targetPath);
} }
public function getSize() public function getSize(): ?int
{ {
return $this->size; return $this->size;
} }
public function getError() public function getError(): int
{ {
return $this->error; return $this->error;
} }
public function getClientFilename() public function getClientFilename(): ?string
{ {
return $this->clientFileName; return $this->clientFileName;
} }
public function getClientMediaType() public function getClientMediaType(): ?string
{ {
return $this->clientMediaType; return $this->clientMediaType;
} }
......
...@@ -27,26 +27,26 @@ class Uri implements UriInterface ...@@ -27,26 +27,26 @@ class Uri implements UriInterface
private $fragment = ''; private $fragment = '';
private $uriString; private $uriString;
public function __construct($uri = '') public function __construct(string $uri = '')
{ {
$parts = parse_url($uri); $parts = parse_url($uri);
$this->scheme = isset($parts['scheme']) ? $parts['scheme'] : ''; $this->scheme = $parts['scheme'] ?? '';
$this->userInfo = isset($parts['user']) ? $parts['user'] : ''; $this->userInfo = $parts['user'] ?? '';
$this->host = isset($parts['host']) ? $parts['host'] : ''; $this->host = $parts['host'] ?? '';
$this->port = isset($parts['port']) ? $parts['port'] : null; $this->port = $parts['port'] ?? null;
$this->path = isset($parts['path']) ? $parts['path'] : ''; $this->path = $parts['path'] ?? '';
$this->query = isset($parts['query']) ? $parts['query'] : ''; $this->query = $parts['query'] ?? '';
$this->fragment = isset($parts['fragment']) ? $parts['fragment'] : ''; $this->fragment = $parts['fragment'] ?? '';
$this->uriString = $uri; $this->uriString = $uri;
} }
public function getScheme() public function getScheme(): string
{ {
return $this->scheme; return $this->scheme;
} }
public function getAuthority() public function getAuthority(): string
{ {
if (empty($this->host)) { if (empty($this->host)) {
return ''; return '';
...@@ -63,72 +63,107 @@ class Uri implements UriInterface ...@@ -63,72 +63,107 @@ class Uri implements UriInterface
return $authority; return $authority;
} }
public function getUserInfo() public function getUserInfo(): string
{ {
return $this->userInfo; return $this->userInfo;
} }
public function getHost() public function getHost(): string
{ {
return $this->host; return $this->host;
} }
public function getPort() public function getPort(): ?int
{ {
return $this->port; return $this->port;
} }
public function getPath() public function getPath(): string
{ {
return $this->path; return $this->path;
} }
public function getQuery() public function getQuery(): string
{ {
return $this->query; return $this->query;
} }
public function getFragment() public function getFragment(): string
{ {
return $this->fragment; return $this->fragment;
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withScheme($scheme) public function withScheme($scheme)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withUserInfo($user, $password = null) public function withUserInfo($user, $password = null)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withHost($host) public function withHost($host)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withPort($port) public function withPort($port)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withPath($path) public function withPath($path)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withQuery($query) public function withQuery($query)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
/**
* {@inheritdoc}
*
* @return static
*/
public function withFragment($fragment) public function withFragment($fragment)
{ {
throw new \BadMethodCallException('Not implemented.'); throw new \BadMethodCallException('Not implemented.');
} }
public function __toString() public function __toString(): string
{ {
return $this->uriString; return $this->uriString;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment