src/Controller/AppController.php line 41

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Endroid\QrCode\Color\Color;
  4. use Endroid\QrCode\Encoding\Encoding;
  5. use Endroid\QrCode\ErrorCorrectionLevel;
  6. use Endroid\QrCode\Label\Label;
  7. use Endroid\QrCode\Logo\Logo;
  8. use Endroid\QrCode\QrCode;
  9. use Endroid\QrCode\RoundBlockSizeMode;
  10. use Endroid\QrCode\Writer\PngWriter;
  11. use Intervention\Image\ImageManagerStatic as Image;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. final class AppController extends AbstractController
  17. {
  18.     #[Route('/'name'index')]
  19.     public function index(): Response
  20.     {
  21.         return $this->render('index.html.twig');
  22.     }
  23.     #[Route('/terms'name'terms'methods'GET')]
  24.     public function terms(): Response
  25.     {
  26.         return $this->render('terms.html.twig');
  27.     }
  28.     #[Route('/privacy'name'privacy')]
  29.     public function privacy(): Response
  30.     {
  31.         return $this->render('privacy.html.twig');
  32.     }
  33.     #[Route('/pricing'name'pricing')]
  34.     public function pricing(): Response
  35.     {
  36.         return $this->render('pricing.html.twig');
  37.     }
  38.     #[Route('/qrcode-generator'name'qr-code')]
  39.     public function generateQrCodeWithLogo(Request $request): Response
  40.     {
  41.         $writer = new PngWriter();
  42.         $url sprintf('https://search.google.com/local/writereview?placeid=%s'$request->query->get('place-id'));
  43.         $qrCode QrCode::create($url)
  44.             ->setEncoding(new Encoding('UTF-8'))
  45.             ->setErrorCorrectionLevel(ErrorCorrectionLevel::Low)
  46.             ->setSize(500)
  47.             ->setMargin(10)
  48.             ->setRoundBlockSizeMode(RoundBlockSizeMode::Margin)
  49.             ->setForegroundColor(new Color(000))
  50.             ->setBackgroundColor(new Color(255255255));
  51.         // Create generic logo
  52.         $logo Logo::create(__DIR__.'/../../public/assets/img/google-icon.png')
  53.             ->setResizeToWidth(150);
  54.         $result $writer->write($qrCode$logo);
  55.         // Convert the final image to a Symfony Response
  56.         $response = new Response($result->getString());
  57.         $response->headers->set('Content-Type'$result->getMimeType());
  58.         return $response;
  59.     }
  60. }