Bench.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php defined('SYSPATH') OR die('No Direct Script Access');
  2. Class Controller_Bench extends Controller
  3. {
  4. public function action_json()
  5. {
  6. $this->response
  7. ->headers(array('Content-Type' => 'application/json'))
  8. ->body(json_encode(array("message" => "Hello World!")));
  9. }
  10. public function action_db()
  11. {
  12. $queries = $this->request->param('queries');
  13. $queries = (isset($queries) && is_numeric($queries))
  14. ? $queries
  15. : 1;
  16. $worlds = array();
  17. for ($i = 0; $i < $queries; ++$i) {
  18. $worlds[] = DB::select()->from('World')
  19. ->where('id', '=', mt_rand(1, 10000))
  20. ->execute()
  21. ->current();
  22. }
  23. $this->response
  24. ->headers(array('Content-Type' => 'application/json'))
  25. ->body(json_encode($worlds));
  26. }
  27. public function action_fortunes()
  28. {
  29. $fortunes = DB::select()->from('Fortune')
  30. ->execute()
  31. ->as_array();
  32. $fortunes[] = array(
  33. 'id' => 0,
  34. 'message' => 'Additional fortune added at request time.'
  35. );
  36. usort($fortunes, function($left, $right) {
  37. if ($left['message'] === $right['message']) {
  38. return 0;
  39. } else if ($left['message'] > $right['message']) {
  40. return 1;
  41. } else {
  42. return -1;
  43. }
  44. });
  45. $this->response->body(
  46. View::factory('bench/fortunes')
  47. ->bind('fortunes', $fortunes)
  48. ->render()
  49. );
  50. }
  51. }