BenchController.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Apps\Controllers;
  3. use Cygnite\Mvc\Controller\AbstractBaseController;
  4. use Apps\Models\Fortune;
  5. use Apps\Models\World;
  6. class BenchController extends AbstractBaseController
  7. {
  8. public function __construct()
  9. {
  10. parent::__construct();
  11. }
  12. public function indexAction()
  13. {
  14. echo 'Hello World!';
  15. }
  16. public function dbAction($queries = 1)
  17. {
  18. $worlds = array();
  19. $world = null;
  20. for ($i = 0; $i < $queries; ++$i) {
  21. $world = World::find(mt_rand(1, 10000));
  22. $worlds[] = $world->asArray();
  23. }
  24. if ($queries == 1) {
  25. $worlds = $worlds[0];
  26. }
  27. header('Content-type: application/json');
  28. echo json_encode($worlds);
  29. }
  30. public function fortunesAction()
  31. {
  32. $allFortunes = array();
  33. $allFortunes = Fortune::all();
  34. $fortunes = $allFortunes->asArray();
  35. $runtimeFortune = new Fortune();
  36. $runtimeFortune->id = 0;
  37. $runtimeFortune->message = 'Additional fortune added at request time.';
  38. $fortunes[] = $runtimeFortune;
  39. usort($fortunes, function($left, $right) {
  40. if ($left->message === $right->message) {
  41. return 0;
  42. } else if ($left->message > $right->message) {
  43. return 1;
  44. } else {
  45. return -1;
  46. }
  47. });
  48. $this->render('fortunes', array(
  49. 'fortunes' => $fortunes
  50. ));
  51. }
  52. }