controllers.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. use Silex\Application;
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. //Request::setTrustedProxies(array('127.0.0.1'));
  6. $app->get('/', function () use ($app) {
  7. return $app['twig']->render('index.html.twig', []);
  8. })
  9. ->bind('homepage');
  10. $blogPosts = [
  11. 1 => [
  12. 'date' => '2011-03-29',
  13. 'author' => 'igorw',
  14. 'title' => 'Using Silex',
  15. 'body' => '...It takes time on version changes...',
  16. ],
  17. ];
  18. $app->get('/blog', function () use ($blogPosts) {
  19. $output = '';
  20. foreach ($blogPosts as $post) {
  21. $output .= $post ['title'];
  22. $output .= '<br />';
  23. }
  24. return $output;
  25. });
  26. $app->get('/blog/{id}', function (Application $app, $id) use ($blogPosts) {
  27. if (!isset ($blogPosts [$id])) {
  28. $app->abort(Response::HTTP_NOT_FOUND, "Post $id does not exist.");
  29. }
  30. $post = $blogPosts [$id];
  31. return "<h1> {$post['title']}</h1>" . "<p> {$post['body']} </p>";
  32. });
  33. $app->post('/feedback', function (Application $app, Request $request) {
  34. $message = $request->get('message');
  35. mail($app['app.mail_to'], '[YourSite] Feedback', $message);
  36. return new Response ('Thank you for your feedback!', Response::HTTP_CREATED);
  37. });
  38. $app->error(function (\Exception $e, Request $request, $code) use ($app) {
  39. if ($app['debug']) {
  40. return;
  41. }
  42. // 404.html, or 40x.html, or 4xx.html, or error.html
  43. $templates = array(
  44. 'errors/'.$code.'.html.twig',
  45. 'errors/'.substr($code, 0, 2).'x.html.twig',
  46. 'errors/'.substr($code, 0, 1).'xx.html.twig',
  47. 'errors/default.html.twig',
  48. );
  49. return new Response($app['twig']->resolveTemplate($templates)->render(array('code' => $code)), $code);
  50. });