内置函数

container() 从容器获取单例

此函数使用的是 hyperf 的DI,做了封装,可方便快捷的从容器获取类的单例。

  • 示例代码:
// 获取 \Mine\MineRequest 的单例
$request = container()->get(\Mine\MineRequest::class);

redis() 获取Redis实例

此函数可以获取Redis实例对象,可对redis进行相关操作

  • 示例代码:
// 获取 Redis 的实例
$redis = redis();
$username = $redis->get('username');

console() 获取控制台输出实例

此函数可以获取控制台输出实例对象,可以在控制台输出信息,进行代码调试等操作。

  • 示例代码:
// 获取控制台输出实例
$console = console();

$console->alert('警告信息');
$console->info('普通信息');
$console->warning('注意信息');
$console->notice('提示信息');
$console->error('错误信息');
$console->debug('调试信息');
$console->log('日志信息');

logger() 获取日志对象

此函数可以获取日志对象,对错误、警告、操作等信息可以保存成日志文件。

  • 示例代码:
// 获取控制台输出实例
$logger = logger();

$logger->alert('警告日志');
$logger->info('普通日志');
$logger->warning('注意日志');
$logger->notice('提示日志');
$logger->error('错误日志');
$logger->debug('调试日志');
$logger->log('一般日志');

其他函数

/**
 * 获取当前登录用户实例
 * @param string $scene
 * @return LoginUser
 */
user(string $scene = 'user');

/**
 * 获取APP应用请求实例
 * @param string $scene
 * @return AppVerify
 */
app_verify(string $scene = 'api');

/**
 * 格式化大小
 * @param int $size
 * @return string
 */
format_size(int $size);

/**
 * 多语言函数
 * @param string $key 语言包key
 * @param array $replace 语言包关键字替换指定内容
 * @return string
 * @throws \Psr\Container\ContainerExceptionInterface
 * @throws \Psr\Container\NotFoundExceptionInterface
 */
t(string $key, array $replace = []);

/**
 * 创建一个Mine的集合类
 * @param null|mixed $value
 * @return \Mine\MineCollection
 */
mine_collect($value = null);

/**
 * 设置协程上下文数据
 * @param string $key 
 * @param $data
 * @return bool
 */
context_set(string $key, $data);

/**
 * 获取上下文数据
 * @param string $key
 * @return mixed
 */
context_get(string $key);

/**
 * 事件调度快捷方法
 * @param object $dispatch
 * @return object
 * @throws \Psr\Container\ContainerExceptionInterface
 * @throws \Psr\Container\NotFoundExceptionInterface
 */
event(Object $dispatch);

/**
 * 推送消息到队列
 * @param QueueMessageVo $message
 * @param array $receiveUsers
 * @return bool
 * @throws Throwable
 * @throws \Psr\Container\ContainerExceptionInterface
 * @throws \Psr\Container\NotFoundExceptionInterface
 */
push_queue_message(QueueMessageVo $message, array $receiveUsers = []);

/**
 * 添加任务到队列
 * @param \App\System\Vo\AmqpQueueVo $amqpQueueVo
 * @return bool
 * @throws Throwable
 * @throws \Psr\Container\ContainerExceptionInterface
 * @throws \Psr\Container\NotFoundExceptionInterface
 */
add_queue(\App\System\Vo\AmqpQueueVo $amqpQueueVo);