src\Controller\Routes.php line 174
<?php
namespace App\Controller;
use LogicException;
use App\Objects\User\User;
use App\Objects\Redirection;
use Klio\KlioBundle\Security\Hash;
use Klio\KlioBundle\Security\Sanitizer;
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\HtmlSanitizerConfig;
use Symfony\Component\HtmlSanitizer\HtmlSanitizerInterface;
class Routes extends RouteController
{
/**
* @param HtmlSanitizerInterface $htmlSanitizer
* @param Request $request
* @return Response
* @throws LogicException
* @throws NotFoundExceptionInterface
* @throws ContainerExceptionInterface
*/
#[Route(
'/FW7/{subpath}',
name: 'FW7',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => '.*']
)]
public function FW7(Request $request, HtmlSanitizerInterface $sanitizer): Response
{
ob_clean();
// initialize l'object RouteController
// defini les constantes avec un fichier de config en option
$this->init(); // $this->init("/private/Config.php");
//$Sanitizer = new Sanitizer("body");
global $FW;
require_once($_ENV['PACKAGES_FOLDER'] . '/frameworks/FW7/prepend_FW7.php');
/* === la logique propre à ce groupe de routes === */
// on force toutes ces routes à utiliser le même controller spécifique
$this->setController('/FW7/Controller7.php');
/* === la logique propre à ce groupe de routes === */
// On renvoie le résultat
return new Response($this->getResponse(), $this->getStatus());
}
/**
* @param HtmlSanitizerInterface $htmlSanitizer
* @param Request $request
* @return Response
* @throws LogicException
* @throws NotFoundExceptionInterface
* @throws ContainerExceptionInterface
*/
#[Route(
'/admin{subpath}',
name: 'admin',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => '^.{0}|/.*$']
)]
public function admin(Request $request, HtmlSanitizerInterface $sanitizer): Response
{
// les varaibales de base
$this->init();
// authentifiction
global $USER;
$USER = new User();
if (!$USER->auth()) $this->setController('/_login/Controller.php');
//$this->setController('/FW7/admin/Controller7.php');
/* === 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(
'/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");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on force toutes ces routes à utiliser le même controller spécifique
$this->setController('/actualites/Controller.php');
// 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: 'page',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => ".*(?:formation|paie|conseil|cooperative|mediation|bureau_danse|mentions_legales)\b(\/.*|.{0})"],
)]
public function page(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");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
$this->setController('/page/Controller.php');
/* === 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: 'formations',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => ".*formations"],
)]
public function formations(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");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
$this->setController('/formations/Controller.php');
/* === 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(
'/formations/{subpath}',
name: 'formation',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => ".+$"],
)]
public function formation(Request $request, HtmlSanitizerInterface $sanitizer): Response
{
$subpath = $request->attributes->get('_route_params')["subpath"];
// initialize l'object RouteController
// defini les constantes avec un fichier de config en option
$this->init(); // $this->init("/private/Config.php");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
if ($subpath === "detail")
$this->setController('/formations/detail/Controller.php');
else
$this->setController('/formations/formation/Controller.php');
/* === 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(
'/formations_partenaires/{subpath}',
name: 'formation-partenaire',
methods: ['GET', 'HEAD', 'POST'],
requirements: ['subpath' => ".+$"],
)]
public function formationPartenaire(Request $request, HtmlSanitizerInterface $sanitizer): Response
{
$subpath = $request->attributes->get('_route_params')["subpath"];
// initialize l'object RouteController
// defini les constantes avec un fichier de config en option
$this->init(); // $this->init("/private/Config.php");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
if ($subpath === "detail")
$this->setController('/formations_partenaires/detail/Controller.php');
else
$this->setController('/formations_partenaires/formation/Controller.php');
/* === 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");
// Redirection
Redirection::verifHost();
/* === la logique propre à ce groupe de routes === */
// on ajoute un controller au controller /path/Controller.php
//$this->setController('/page/Controller.php');
/* === la logique propre à ce groupe de routes === */
// 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->setStatus(404);
if (str_contains(__URL__, "/formations/") || str_contains(__URL__, "/formations_partenaires/"))
$CONTROLLER->setTemplate('/404formation.twig');
else
$CONTROLLER->setTemplate('/404.twig');
}
}