<?php
namespace App\Controller;
use App\Form\ContactType;
use App\Form\TestimonialType;
use App\Repository\ExperiencesRepository;
use App\Repository\InformationsRepository;
use App\Repository\ServicesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Annotation\Route;
class IndexController extends AbstractController
{
/**
* @Route("/", name="app_index")
*/
public function index(Request $request, MailerInterface $mailer, InformationsRepository $informationsRepository, ServicesRepository $servicesRepository, ExperiencesRepository $experiencesRepository): Response
{
$information = $informationsRepository->findAll()[0];
$services = $servicesRepository->findAll();
$experiences = $experiencesRepository->findBy(['enabled' => true]);
$form = $this->createForm(ContactType::class);
// create testimonials form
$testimonialsForm = $this->createForm(TestimonialType::class);
$testimonialsForm->handleRequest($request);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$contactFormData = $form->getData();
$message = (new Email())
->from($_ENV['MAIL_FROM'])
->replyTo($contactFormData['email'])
->to($_ENV['MAIL_TO'])
->subject(ucfirst(mb_strtolower($contactFormData['subject'])))
->text('Sender : '.$contactFormData['email'].\PHP_EOL.
$contactFormData['message'],
'text/plain');
$mailer->send($message);
$this->addFlash('success', 'Votre message a été envoyé');
// return $this->redirect($request->getUri());
}
return $this->render('index/about.html.twig', [
'form' => $form->createView(),
'testimonialsForm' => $testimonialsForm->createView(),
'information' => $information,
'services' => $services,
'experiences' => $experiences,
]);
}
}