Home.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <?php
  2. namespace Controller;
  3. use Wolff\Core\Container;
  4. use Wolff\Core\Http\Request;
  5. use Wolff\Core\Http\Response;
  6. use Wolff\Core\Language;
  7. use Wolff\Core\View;
  8. class Home extends \Wolff\Core\Controller
  9. {
  10. public function plaintext(Request $req, Response $res)
  11. {
  12. $res->setHeader('Content-Type', 'text/plain');
  13. $res->write('Hello, World!');
  14. }
  15. public function json(Request $req, Response $res)
  16. {
  17. $res->setHeader('Content-Type', 'application/json');
  18. $res->writeJson(['message' => 'Hello, World!']);
  19. }
  20. public function db(Request $req, Response $res)
  21. {
  22. $random_id = mt_rand(1, 10000);
  23. /** @var \Wolff\Core\DB */
  24. $db = Container::get('db');
  25. $row = $db->select('World', 'id = ?', $random_id)[0];
  26. $res->setHeader('Content-Type', 'application/json');
  27. $res->writeJson([
  28. 'id' => $row['id'],
  29. 'randomNumber' => $row['randomNumber']
  30. ]);
  31. }
  32. public function queries(Request $req, Response $res)
  33. {
  34. $queries = $req->query('queries');
  35. if (is_numeric($queries)) {
  36. $queries = max(1, min($queries, 500));
  37. } else {
  38. $queries = 1;
  39. }
  40. /** @var \Wolff\Core\DB */
  41. $db = Container::get('db');
  42. $worlds = [];
  43. for ($i = 0; $i < $queries; ++$i) {
  44. $random_id = mt_rand(1, 10000);
  45. $row = $db->select('World', 'id = ?', $random_id)[0];
  46. $world = [
  47. 'id' => $row['id'],
  48. 'randomNumber' => $row['randomNumber']
  49. ];
  50. $worlds[] = $world;
  51. }
  52. $res->setHeader('Content-Type', 'application/json');
  53. $res->writeJson($worlds);
  54. }
  55. public function update(Request $req, Response $res)
  56. {
  57. $queries = $req->query('queries');
  58. if (is_numeric($queries)) {
  59. $queries = max(1, min($queries, 500));
  60. } else {
  61. $queries = 1;
  62. }
  63. /** @var \Wolff\Core\DB */
  64. $db = Container::get('db');
  65. $worlds = [];
  66. for ($i = 0; $i < $queries; ++$i) {
  67. $random_id = mt_rand(1, 10000);
  68. $random_update_id = mt_rand(1, 10000);
  69. $row = $db->select('World', 'id = ?', $random_id)[0];
  70. $db->query('UPDATE World SET randomNumber = ? WHERE id = ?', $random_update_id, $row['id']);
  71. $world = [
  72. 'id' => $row['id'],
  73. 'randomNumber' => $random_update_id
  74. ];
  75. $worlds[] = $world;
  76. }
  77. $res->setHeader('Content-Type', 'application/json');
  78. $res->writeJson($worlds);
  79. }
  80. public function fortunes(Request $req, Response $res)
  81. {
  82. /** @var \Wolff\Core\DB */
  83. $db = Container::get('db');
  84. $fortunes = $db->select('Fortune');
  85. $fortunes[] = [ 'id' => 0, 'message' => 'Additional fortune added at request time.' ];
  86. usort($fortunes, function ($left, $right) {
  87. return $left['message'] <=> $right['message'];
  88. });
  89. View::render('fortunes', [
  90. 'fortunes' => $fortunes,
  91. ]);
  92. }
  93. }