src/Controller/FakeBus/FakeBusCookieController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\FakeBus;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Cookie;
  5. use Symfony\Component\HttpFoundation\JsonResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @Route("/debug/fakebus/cookie")
  11.  */
  12. class FakeBusCookieController extends AbstractController {
  13.     /**
  14.      * @Route("/", name="fakebus_cookie_index");
  15.      */
  16.     public function homepage(Request $r) {
  17.         return $this->render('FakeBus/Cookie/homepage.html.twig');
  18.     }
  19.     /**
  20.      * @Route("/init", name="fakebus_cookie_init");
  21.      */
  22.     public function init(Request $r) {
  23.         $depStopExt $r->query->get('dep');
  24.         $arrStopExt $r->query->get('arr');
  25.         $date $r->query->get('date');
  26.         $cookie = new Cookie('Search'json_encode(['dep' => $depStopExt'arr' => $arrStopExt'date' => $date]), strtotime('tomorrow'), '/');
  27.         $response = new Response();
  28.         $response->headers->setCookie($cookie);
  29.         return $response->setContent("params saved in cookie");
  30.     }
  31.     /**
  32.      * @Route("/result", name="fakebus_cookie_result");
  33.      */
  34.     public function result(Request $r) {
  35.         $cookie = ($r->cookies->get('Search'));
  36.         $data json_decode($cookie);
  37.         if($data->dep == $data->arr) die('departure and arrival must be different');
  38.         if(!$data->dep || !$data->arr || !$data->date) die ('departure, arrival and date must be set');
  39.         return $this->render('FakeBus/Cookie/resultpage.html.twig', [
  40.             'param' => $data,
  41.             'trips' => FakeBusController::getFakeTrips($data->dep$data->arr$data->date)
  42.         ]);
  43.     }
  44.     /**
  45.      * @Route("/debug")
  46.      * Display all cookies values in json and add 1 to every request. Eg:
  47.      * curl http://127.0.0.1:8000/debug/fakebus/cookie/debug -c tmp_cookie.txt -b tmp_cookie.txt > tmp_json.json
  48.      * -c write cookie in local /  -b send cookie to server
  49.      */
  50.     public function cookieDebug(Request $r) {
  51.         $all $r->cookies->all();
  52.         $add $r->cookies->get('add');
  53.         $response = new JsonResponse([
  54.             'request_all' => $all
  55.         ]);
  56.         $response->headers->setCookie(new Cookie('add'$add 1strtotime('tomorrow'), '/'));
  57.         return $response;
  58.     }
  59. }