Hello.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace Vanilla\Controller;
  3. use Pimf\Controller\Base, Pimf\View, Pimf\Registry;
  4. class Hello extends Base
  5. {
  6. /**
  7. * A index action - this is a framework restriction!
  8. */
  9. public function indexAction()
  10. {
  11. $this->plaintextAction();
  12. }
  13. /**
  14. * Test 1: JSON serialization
  15. */
  16. public function jsonAction()
  17. {
  18. $this->response->asJSON()->send(array("message" => "Hello World!"));
  19. }
  20. /**
  21. * Test 2: Multiple database queries
  22. */
  23. public function queriesAction()
  24. {
  25. $queries = max(1, min($this->request->fromGet()->get('queries', 1), 500));
  26. $worlds = array();
  27. for ($i = 0; $i < $queries; ++$i) {
  28. $worlds[] = Registry::get('em')->world->find(mt_rand(1, 10000));
  29. }
  30. $this->response->asJSON()->send($worlds);
  31. }
  32. /**
  33. * Test 3: Single database query
  34. */
  35. public function dbAction()
  36. {
  37. $worlds = Registry::get('em')->world->find(mt_rand(1, 10000));
  38. $this->response->asJSON()->send($worlds);
  39. }
  40. /**
  41. * Test 4: Fortunes
  42. */
  43. public function fortunesAction()
  44. {
  45. $fortunes = Registry::get('em')->fortune->getAll();
  46. $fortunes[] = array(
  47. 'id' => count($fortunes) + 1,
  48. 'message' => 'Additional fortune added at request time.'
  49. );
  50. $view = new View('table.phtml', array('fortunes' => $fortunes));
  51. $this->response->asHTML()->send($view);
  52. }
  53. /**
  54. * Test 5: Database updates
  55. */
  56. public function updatesAction()
  57. {
  58. $queries = max(1, min($this->request->fromGet()->get('queries', 1), 500));
  59. $worlds = array();
  60. /* @var $em \Pimf\EntityManager */
  61. $em = Registry::get('em');
  62. $em->beginTransaction();
  63. for ($i = 0; $i < $queries; ++$i) {
  64. $worlds[] = $em->world->find(mt_rand(1, 10000));
  65. }
  66. foreach ($worlds as $row) {
  67. $row['randomNumber'] = rand(1, 10000);
  68. $em->world->update($row);
  69. }
  70. $em->commitTransaction();
  71. $this->response->asJSON()->send($worlds);
  72. }
  73. /**
  74. * Test 6: Plaintext
  75. */
  76. public function plaintextAction()
  77. {
  78. $this->response->asTEXT()->send('Hello World!');
  79. }
  80. }