123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- <?php
- declare(strict_types=1);
- namespace App\Controller\Api\v1;
- use App\Controller\AbstractController;
- use App\Model\Arts\DemoModel;
- use App\Request\Api\v1\DemoIndexRequest;
- use App\Service\QueueService;
- use App\Utils\AppResult;
- use App\Utils\Control\AuthUser;
- use Hyperf\Di\Annotation\Inject;
- use Psr\Http\Message\ServerRequestInterface;
- use function Hyperf\Coroutine\co;
- /**
- * Demo
- * 示例
- */
- class DemoController extends AbstractController
- {
- // 日志模块名称
- const LOG_MODULE = 'v1/DemoController';
- #[Inject]
- protected QueueService $service;
- /**
- * 示例接口
- *
- * @param DemoIndexRequest $request 校验参数注入类
- * @return string
- */
- public function index(DemoIndexRequest $request)
- {
- /**
- * 当处理HTTP请求时,无论是通过路径参数、查询参数还是请求体传递的参数,Hyperf都会将其作为字符串类型返回。
- * 这是因为HTTP请求中的参数本质上就是字符串,即使它们代表的是其他数据类型(如整数、布尔值等)。
- * 注意:所有的参数(除 Content-type:application/json 外)类型都是字符串 如有需要 则可强转后使用
- * 例如,如果期望得到一个整数值,可以使用 intval() 函数将字符串转换为整数。同样,对于布尔值,可以使用 boolval() 函数。
- *
- * POST 建议使用 Content-type:application/json
- */
- $params = $request->validated();// 获取校验参数结果
- /**
- * 获取用户信息
- */
- $user = AuthUser::getInstance()->get();
- $model = new DemoModel();
- $list = $model->getList($params);
- $setup = site('logo');
- // 测试投递异步队列消息
- $this->service->demoPush(['name' => 'one'], 10);
- // 携程 闭包
- co(function () use ($params){
- sleep(10);
- });
- return AppResult::response200('Coming Soon!!!', [
- 'params' => $params,
- 'list' => $list,
- 'module_setup' => $setup,
- ]);
- }
- /**
- * 原始示例
- * @param ServerRequestInterface $request
- * @return string
- */
- public function demo01(ServerRequestInterface $request)
- {
- return AppResult::response200('Coming Soon!!!', [
- // 获取请求参数方式
- 'params' => $request->getQueryParams()
- ]);
- }
- }
|