123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
- declare(strict_types=1);
- /**
- * This file is part of Hyperf.
- *
- * @link https://www.hyperf.io
- * @document https://doc.hyperf.io
- * @contact [email protected]
- * @license https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
- */
- namespace App\Controller;
- use App\Model\Fortune;
- use App\Model\World;
- use App\Render;
- use Hyperf\Di\Annotation\Inject;
- use Hyperf\HttpServer\Annotation\Controller;
- use Hyperf\HttpServer\Annotation\GetMapping;
- use Hyperf\HttpServer\Contract\ResponseInterface;
- /**
- * @Controller
- */
- class IndexController
- {
- /**
- * @Inject()
- * @var Render
- */
- private $render;
- /**
- * @Inject()
- * @var ResponseInterface
- */
- private $response;
- /**
- * @GetMapping(path="/json")
- */
- public function json()
- {
- return $this->response->json(['message' => 'Hello, World!']);
- }
- /**
- * @GetMapping(path="/db")
- */
- public function db()
- {
- return $this->response->json(World::find(random_int(1, 10000)));
- }
- /**
- * @GetMapping(path="/queries/[{queries}]")
- */
- public function queries($queries = 1)
- {
- $queries = $this->clamp($queries);
- $rows = [];
- while ($queries--) {
- $rows[] = World::find(random_int(1, 10000));
- }
- return $this->response->json($rows);
- }
- /**
- * @GetMapping(path="/fortunes")
- */
- public function fortunes()
- {
- $rows = Fortune::all();
- $insert = new Fortune();
- $insert->id = 0;
- $insert->message = 'Additional fortune added at request time.';
- $rows->add($insert);
- $rows = $rows->sortBy('message');
- return $this->render->render('fortunes', ['rows' => $rows]);
- }
- /**
- * @GetMapping(path="/updates/[{queries}]")
- */
- public function updates($queries = 1)
- {
- $queries = $this->clamp($queries);
- $rows = [];
- while ($queries--) {
- $row = World::find(random_int(1, 10000));
- $row->randomNumber = random_int(1, 10000);
- $row->save();
- $rows[] = $row;
- }
- return $this->response->json($rows);
- }
- /**
- * @GetMapping(path="/plaintext")
- */
- public function plaintext()
- {
- return $this->response->raw('Hello, World!');
- }
- private function clamp($value): int
- {
- if (! is_numeric($value) || $value < 1) {
- return 1;
- }
- if ($value > 500) {
- return 500;
- }
- return (int)$value;
- }
- }
|