feat:兼容开发
parent
6bfb98b659
commit
428a44a614
|
@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||
namespace App\Cache;
|
||||
|
||||
use App\Cache\Repository\HashRedis;
|
||||
use App\Helpers\JsonHelper;
|
||||
use App\Helper\JsonHelper;
|
||||
use App\Support\IpAddress;
|
||||
|
||||
class IpAddressCache extends HashRedis
|
||||
|
|
|
@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||
namespace App\Command;
|
||||
|
||||
use App\Cache\IpAddressCache;
|
||||
use App\Constants\RobotConstant;
|
||||
use App\Constant\RobotConstant;
|
||||
use App\Model\Contact\Contact;
|
||||
use App\Repository\ExampleRepository;
|
||||
use App\Repository\RobotRepository;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
class FileDriveConstant
|
||||
{
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* Class MediaTypeConstant
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
class RedisSubscribeChan
|
||||
{
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* HTTP 响应状态码枚举
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* 定义系统机器人ID
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
class SmsConstant
|
||||
{
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* WebSocket 消息事件枚举
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* Class TalkMessageType
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Constants;
|
||||
namespace App\Constant;
|
||||
|
||||
/**
|
||||
* 聊天对话模式
|
|
@ -18,7 +18,7 @@ use Hyperf\HttpServer\Contract\ResponseInterface;
|
|||
use Psr\Container\ContainerInterface;
|
||||
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
||||
use App\Exception\ValidateException;
|
||||
use App\Constants\ResponseCode;
|
||||
use App\Constant\ResponseCode;
|
||||
|
||||
abstract class AbstractController
|
||||
{
|
||||
|
|
|
@ -3,9 +3,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Controller\Api\V1\Article;
|
||||
|
||||
use App\Constants\FileDriveConstant;
|
||||
use App\Constant\FileDriveConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Helpers\DateHelper;
|
||||
use App\Helper\DateHelper;
|
||||
use App\Model\Article\ArticleAnnex;
|
||||
use App\Service\ArticleService;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
|
|
|
@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||
namespace App\Controller\Api\V1\Article;
|
||||
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Helpers\StringHelper;
|
||||
use App\Helper\StringHelper;
|
||||
use App\Service\ArticleService;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpServer\Annotation\Controller;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Controller\Api\V1;
|
||||
|
||||
use App\Constants\SmsConstant;
|
||||
use App\Constant\SmsConstant;
|
||||
use App\Event\LoginEvent;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpServer\Annotation\Controller;
|
||||
|
|
|
@ -9,7 +9,7 @@ use Hyperf\Di\Annotation\Inject;
|
|||
use Hyperf\HttpServer\Annotation\Controller;
|
||||
use Hyperf\HttpServer\Annotation\RequestMapping;
|
||||
use App\Service\SmsCodeService;
|
||||
use App\Constants\SmsConstant;
|
||||
use App\Constant\SmsConstant;
|
||||
use App\Service\UserService;
|
||||
|
||||
/**
|
||||
|
|
|
@ -4,7 +4,7 @@ namespace App\Controller\Api\V1\Contact;
|
|||
|
||||
use App\Cache\FriendRemark;
|
||||
use App\Cache\ServerRunID;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Middleware\JWTAuthMiddleware;
|
||||
use App\Repository\Contact\ContactRepository;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Controller\Api\V1\Group;
|
||||
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Model\Group\Group;
|
||||
use App\Model\Group\GroupNotice;
|
||||
|
|
|
@ -4,9 +4,9 @@ declare(strict_types=1);
|
|||
namespace App\Controller\Api\V1\Talk;
|
||||
|
||||
use App\Cache\UnreadTalkCache;
|
||||
use App\Constants\MediaTypeConstant;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\MediaTypeConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Model\Emoticon\EmoticonItem;
|
||||
|
|
|
@ -3,9 +3,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Controller\Api\V1\Talk;
|
||||
|
||||
use App\Constants\FileDriveConstant;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\FileDriveConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\Talk\TalkRecordsFile;
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace App\Controller\Api\V1\Talk;
|
|||
use App\Cache\LastMessage;
|
||||
use App\Cache\Repository\LockRedis;
|
||||
use App\Cache\UnreadTalkCache;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Controller\Api\V1\CController;
|
||||
use App\Model\Group\Group;
|
||||
use App\Model\Talk\TalkSession;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Controller\Api\V1;
|
||||
|
||||
use App\Constants\SmsConstant;
|
||||
use App\Constant\SmsConstant;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpServer\Annotation\Controller;
|
||||
use Hyperf\HttpServer\Annotation\RequestMapping;
|
||||
|
@ -11,7 +11,7 @@ use Hyperf\HttpServer\Annotation\Middleware;
|
|||
use App\Middleware\JWTAuthMiddleware;
|
||||
use App\Model\User;
|
||||
use App\Support\SendEmailCode;
|
||||
use App\Helpers\HashHelper;
|
||||
use App\Helper\HashHelper;
|
||||
use App\Service\UserService;
|
||||
use App\Service\SmsCodeService;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
|
|
@ -16,7 +16,7 @@ use App\Cache\SocketRoom;
|
|||
use App\Service\Group\GroupMemberService;
|
||||
use App\Service\Message\ReceiveHandleService;
|
||||
use Hyperf\Di\Annotation\Inject;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use Hyperf\Contract\OnCloseInterface;
|
||||
use Hyperf\Contract\OnMessageInterface;
|
||||
use Hyperf\Contract\OnOpenInterface;
|
||||
|
|
|
@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||
namespace App\Exception\Handler;
|
||||
|
||||
use App\Cache\Repository\LockRedis;
|
||||
use App\Constants\ResponseCode;
|
||||
use App\Constant\ResponseCode;
|
||||
use App\Templates\MailerTemplate;
|
||||
use Hyperf\Contract\StdoutLoggerInterface;
|
||||
use Hyperf\ExceptionHandler\ExceptionHandler;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
class ArrayHelper
|
||||
{
|
||||
|
@ -31,7 +31,7 @@ class ArrayHelper
|
|||
* @param int $sort 排序方式
|
||||
* @return array
|
||||
*/
|
||||
public static function sort(array $array, string $field, $sort = SORT_DESC): array
|
||||
public static function sort(array $array, string $field, int $sort = SORT_DESC): array
|
||||
{
|
||||
array_multisort(array_column($array, $field), $sort, $array);
|
||||
return $array;
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
/**
|
||||
* 时间处理助手
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
/**
|
||||
* Hash 密码加密辅助类
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
use Hashids\Hashids;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
/**
|
||||
* Json 字符串助手
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
/**
|
||||
* 正则验证助手
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Helpers;
|
||||
namespace App\Helper;
|
||||
|
||||
/**
|
||||
* 字符串助手类
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Listener;
|
||||
|
||||
use App\Helpers\RegularHelper;
|
||||
use App\Helper\RegularHelper;
|
||||
use Hyperf\Event\Contract\ListenerInterface;
|
||||
use Hyperf\Validation\Contract\ValidatorFactoryInterface;
|
||||
use Hyperf\Validation\Event\ValidatorFactoryResolved;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Process;
|
||||
|
||||
use App\Constants\RedisSubscribeChan;
|
||||
use App\Constant\RedisSubscribeChan;
|
||||
use App\Service\Message\SubscribeHandleService;
|
||||
use Hyperf\Process\AbstractProcess;
|
||||
use Hyperf\Process\Annotation\Process;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Helpers\HashHelper;
|
||||
use App\Helper\HashHelper;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\User;
|
||||
use Hyperf\Utils\Str;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
namespace App\Service\Contact;
|
||||
|
||||
use App\Cache\FriendApply;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Model\Contact\Contact;
|
||||
use App\Model\Contact\ContactApply;
|
||||
|
|
|
@ -3,8 +3,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\Talk\TalkRecordsFile;
|
||||
use App\Model\Emoticon\EmoticonItem;
|
||||
|
|
|
@ -5,9 +5,9 @@ namespace App\Service\Group;
|
|||
|
||||
use App\Cache\LastMessage;
|
||||
use App\Cache\SocketRoom;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\Talk\TalkRecordsInvite;
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace App\Service\Message;
|
|||
|
||||
use App\Cache\VoteCache;
|
||||
use App\Cache\VoteStatisticsCache;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Model\Talk\TalkRecordsCode;
|
||||
use App\Model\Talk\TalkRecordsFile;
|
||||
use App\Model\Talk\TalkRecordsForward;
|
||||
|
|
|
@ -3,8 +3,8 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Service\Message;
|
||||
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Service\SocketClientService;
|
||||
use App\Service\TalkMessageService;
|
||||
|
|
|
@ -5,8 +5,8 @@ namespace App\Service\Message;
|
|||
|
||||
use App\Cache\GroupCache;
|
||||
use App\Cache\SocketRoom;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\User;
|
||||
use App\Model\Contact\ContactApply;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Helpers\HashHelper;
|
||||
use App\Helper\HashHelper;
|
||||
use App\Model\Robot;
|
||||
use App\Model\User;
|
||||
use Hyperf\DbConnection\Db;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Constants\FileDriveConstant;
|
||||
use App\Constant\FileDriveConstant;
|
||||
use App\Model\SplitUpload;
|
||||
use Hyperf\HttpMessage\Upload\UploadedFile;
|
||||
use League\Flysystem\Filesystem;
|
||||
|
|
|
@ -6,8 +6,8 @@ namespace App\Service;
|
|||
use App\Model\Talk\TalkRecordsCode;
|
||||
use App\Model\Talk\TalkRecordsFile;
|
||||
use Exception;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\Talk\TalkRecordsForward;
|
||||
use Hyperf\DbConnection\Db;
|
||||
|
|
|
@ -7,10 +7,10 @@ use App\Cache\LastMessage;
|
|||
use App\Cache\UnreadTalkCache;
|
||||
use App\Cache\VoteCache;
|
||||
use App\Cache\VoteStatisticsCache;
|
||||
use App\Constants\RobotConstant;
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\RobotConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Model\Group\GroupMember;
|
||||
use App\Model\Talk\TalkRecordsCode;
|
||||
|
@ -20,7 +20,7 @@ use App\Model\Talk\TalkRecordsVoteAnswer;
|
|||
use App\Repository\RobotRepository;
|
||||
use App\Support\UserRelation;
|
||||
use Exception;
|
||||
use App\Constants\MediaTypeConstant;
|
||||
use App\Constant\MediaTypeConstant;
|
||||
use App\Model\Talk\TalkRecords;
|
||||
use App\Model\Talk\TalkRecordsFile;
|
||||
use Hyperf\DbConnection\Db;
|
||||
|
|
|
@ -3,9 +3,9 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Constants\TalkEventConstant;
|
||||
use App\Constants\TalkMessageType;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkEventConstant;
|
||||
use App\Constant\TalkMessageType;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Event\TalkEvent;
|
||||
use App\Model\Robot;
|
||||
use App\Service\Group\GroupMemberService;
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace App\Service;
|
|||
use App\Cache\LastMessage;
|
||||
use App\Cache\ServerRunID;
|
||||
use App\Cache\UnreadTalkCache;
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Model\Talk\TalkSession;
|
||||
use App\Repository\Talk\TalkSessionRepository;
|
||||
use Carbon\Carbon;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
namespace App\Service;
|
||||
|
||||
use App\Helpers\HashHelper;
|
||||
use App\Helper\HashHelper;
|
||||
use App\Model\Contact\ContactApply;
|
||||
use App\Repository\Article\ArticleClassRepository;
|
||||
use App\Repository\UserRepository;
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Support;
|
||||
|
||||
use App\Constants\RedisSubscribeChan;
|
||||
use App\Constant\RedisSubscribeChan;
|
||||
|
||||
class Message
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace App\Support;
|
|||
use Hyperf\Di\Annotation\Inject;
|
||||
use Hyperf\HttpServer\Contract\ResponseInterface;
|
||||
use Psr\Http\Message\ResponseInterface as PsrResponseInterface;
|
||||
use App\Constants\ResponseCode;
|
||||
use App\Constant\ResponseCode;
|
||||
|
||||
class Response
|
||||
{
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Support;
|
||||
|
||||
use App\Constants\TalkModeConstant;
|
||||
use App\Constant\TalkModeConstant;
|
||||
use App\Service\Group\GroupMemberService;
|
||||
use App\Service\UserFriendService;
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Traits;
|
||||
|
||||
use App\Helpers\ArrayHelper;
|
||||
use App\Helper\ArrayHelper;
|
||||
use Hyperf\Database\Model\Builder;
|
||||
use Hyperf\Database\Model\Model;
|
||||
use Hyperf\DbConnection\Db;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Helpers\HashHelper;
|
||||
use App\Helper\HashHelper;
|
||||
use Hyperf\Database\Seeders\Seeder;
|
||||
use App\Model\User;
|
||||
use App\Model\Article\ArticleClass;
|
||||
|
@ -69,7 +69,7 @@ class Initialize extends Seeder
|
|||
|
||||
$service = new \App\Service\TalkSessionService();
|
||||
foreach ($list as $item) {
|
||||
$service->create($item->user_id, $item->friend_id, \App\Constants\TalkModeConstant::PRIVATE_CHAT);
|
||||
$service->create($item->user_id, $item->friend_id, \App\Constant\TalkModeConstant::PRIVATE_CHAT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ declare(strict_types=1);
|
|||
namespace HyperfTest\Cases\Helper;
|
||||
|
||||
|
||||
use App\Helpers\ArrayHelper;
|
||||
use App\Helper\ArrayHelper;
|
||||
use HyperfTest\HttpTestCase;
|
||||
|
||||
class ArrayHelperTest extends HttpTestCase
|
||||
|
|
|
@ -3,7 +3,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace HyperfTest\Cases\Helper;
|
||||
|
||||
use App\Helpers\RegularHelper;
|
||||
use App\Helper\RegularHelper;
|
||||
use HyperfTest\HttpTestCase;
|
||||
|
||||
class RegularHelperTest extends HttpTestCase
|
||||
|
|
Loading…
Reference in New Issue