src\Controller\Routes.php line 62
<?php
namespace App\Controller;
use LogicException;
use Klio\Symfony\RouterResponse;
use Klio\KlioBundle\Symfony\Controller;
use Klio\KlioBundle\Symfony\RouteController;
use Psr\Container\NotFoundExceptionInterface;
use Symfony\Component\HttpFoundation\Request;
use Psr\Container\ContainerExceptionInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HtmlSanitizer\HtmlSanitizerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class Routes extends RouteController
{
/**
* @param Request $request
* @return Response
* @throws LogicException
* @throws NotFoundExceptionInterface
* @throws ContainerExceptionInterface
*/
#[Route(
'/actualites/{subpath}',
name: 'actualites',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => '.+$']
)]
public function actualites(HtmlSanitizerInterface $sanitizer, Request $request): Response
{
// initialize l'object RouteController
$this->init(); // $this->init("/private/Config.php");
/* === la logique propre à ce groupe de routes === */
// on force toutes ces routes à utiliser le même controller spécifique
$this->setController('/actualites/Actualites.php');
$this->controller->addTwig(['searchTerm' => @$_SESSION['searchTerm']]);
/* === la logique propre à ce groupe de routes === */
// On renvoie le résultat
return new Response($this->getResponse(), $this->getStatus());
}
/**
* @param Request $request
* @return Response
* @throws LogicException
* @throws NotFoundExceptionInterface
* @throws ContainerExceptionInterface
*/
#[Route(
'/{subpath}',
name: 'all',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => ".*"],
)]
public function all(Request $request, HtmlSanitizerInterface $sanitizer): Response
{
// initialize l'object RouteController
// defini les constantes avec un fichier de config en option
$this->init(); // $this->init("/private/Config.php");
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
//$this->setController('/Controller.php');
/* === la logique propre à ce groupe de routes === */
$this->addController('/pages/Controller.php');
$this->controller->addTwig(['searchTerm' => @$_SESSION['searchTerm']]);
// On renvoie le résultat
return new Response($this->getResponse(), $this->getStatus());
}
/**
* Routes::notFound(Controller) défini le comportement du site en cas de d'erreur 404
* on peut renvoyer certaines infos, choisir d'inclure un Template404.twig spécifique, ou inclure une ogique pour des 404 différenciés
* on renvoyer en général un $CONTROLLER->setTemplate(string) (on peut ajouter des variables twig $CONTROLLER->setTwig(array)) et un $CONTROLLER->setStatus(404)
* Mais on peut aussi renvoyer un $CONTROLLER->setResponse(string) pour certaines routes de type API
*
* @param Controller $CONTROLLER
* @return void
*/
public static function notFound(Controller &$CONTROLLER)
{
//$CONTROLLER->addTwig(['searchTerm' => @$_SESSION['searchTerm']]);
$CONTROLLER->setStatus(404);
$CONTROLLER->setTemplate('/404.twig');
}
}