<?php use Hyperf\Contract\SessionInterface; use Hyperf\Contract\StdoutLoggerInterface; use Hyperf\HttpServer\Contract\ResponseInterface; use Hyperf\HttpServer\Contract\RequestInterface; use Hyperf\Logger\LoggerFactory; use Hyperf\Server\ServerFactory; use Hyperf\Utils\ApplicationContext; use Swoole\Websocket\Frame; use Swoole\WebSocket\Server as WebSocketServer; if (!function_exists('container')) { /** * 容器实例 * @return \Psr\Container\ContainerInterface */ function container() { return ApplicationContext::getContainer(); } } if (!function_exists('redis')) { /** * redis 客户端实例 * @return \Hyperf\Redis\Redis|mixed */ function redis() { return container()->get(Hyperf\Redis\Redis::class); } } if (!function_exists('server')) { /** * server 实例 基于 swoole server * @return \Swoole\Coroutine\Server|\Swoole\Server */ function server() { return container()->get(ServerFactory::class)->getServer()->getServer(); } } if (!function_exists('frame')) { /** * websocket frame 实例 * @return mixed|Frame */ function frame() { return container()->get(Frame::class); } } if (!function_exists('websocket')) { /** * websocket 实例 * @return mixed|WebSocketServer */ function websocket() { return container()->get(WebSocketServer::class); } } if (!function_exists('cache')) { /** * 缓存实例 简单的缓存 * @return mixed|\Psr\SimpleCache\CacheInterface */ function cache() { return container()->get(Psr\SimpleCache\CacheInterface::class); } } if (!function_exists('stdLog')) { /** * 向控制台输出日志 * @return StdoutLoggerInterface|mixed */ function stdLog() { return container()->get(StdoutLoggerInterface::class); } } if (!function_exists('logger')) { /** * 向日志文件记录日志 * @return \Psr\Log\LoggerInterface */ function logger() { return container()->get(LoggerFactory::class)->make(); } } if (!function_exists('request')) { /** * 请求对象 * @return mixed|RequestInterface */ function request() { return container()->get(RequestInterface::class); } } if (!function_exists('response')) { /** * 请求回应对象 * @return ResponseInterface|mixed */ function response() { return container()->get(ResponseInterface::class); } } if (!function_exists('session')) { /** * session 对象 * @return SessionInterface|mixed */ function session() { return container()->get(SessionInterface::class); } }
1、把该文件存放在autoload目录中,会自动加载
2、文件地址放在当前项目的composer.json里进行加载
"autoload": {
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Functions.php"
]
},
建议使用方法2
相关测试方法
/** * 常用操作函数封装 */ function func(){ // 文件日志 logger()->error('来了'); // 控制台日志 stdLog()->info('logger 成功'); // 获取请求内容,输出 $data = request()->input('hi'); // redis操作 cache()->set('cache_name', '我是redis值lobtao'); // 获取server()相关信息 $masterPid = server()->getMasterPid(); $managerPid = server()->getManagerPid(); $workerId = server()->getWorkerId(); $workerPid = server()->getWorkerPid(); $workerStatus = server()->getWorkerStatus($workerId); $response = "masterPid={$masterPid}, managerPid={$managerPid}, workerId={$workerId}, workerPid={$workerPid}, workerStatus={$workerStatus}"; // session 相关操作 session()->put('session_name', '我是session值:yssoft'); // frame 和 websocket 没法测试 // $fd = frame()->fd; // response输出 return response()->raw('response: '.$response); } function funcget(){ // cache 获取 $cache_name = cache()->get('cache_name'); // session 获取 $session_name = session()->get('session_name'); $session_id = session()->getId(); $response = "cache_name = {$cache_name}, session_name = {$session_name}, session_id = {$session_id}"; return response()->raw('response: '.$response); }