BenchController.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. protected $templateEngine = false;
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. }
  13. public function indexAction()
  14. {
  15. echo 'Hello World!';
  16. }
  17. public function dbAction($queries = 1)
  18. {
  19. $worlds = array();
  20. $world = null;
  21. for ($i = 0; $i < $queries; ++$i) {
  22. $world = World::find(mt_rand(1, 10000));
  23. $worlds[] = $world->getAttributes();
  24. }
  25. if ($queries == 1) {
  26. $worlds = $worlds[0];
  27. }
  28. header('Content-type: application/json');
  29. echo json_encode($worlds);
  30. }
  31. public function fortunesAction()
  32. {
  33. $allFortunes = array();
  34. $allFortunes = Fortune::all();
  35. $fortunes = $allFortunes->asArray();
  36. $runtimeFortune = new Fortune();
  37. $runtimeFortune->id = 0;
  38. $runtimeFortune->message = 'Additional fortune added at request time.';
  39. $fortunes[] = $runtimeFortune;
  40. usort($fortunes, function($left, $right) {
  41. if ($left->message === $right->message) {
  42. return 0;
  43. } else if ($left->message > $right->message) {
  44. return 1;
  45. } else {
  46. return -1;
  47. }
  48. });
  49. $this->render('fortunes', array(
  50. 'fortunes' => $fortunes
  51. ));
  52. }
  53. }