Eagle Framework Help

Routing

Etapes de routing

Première étape

  1. Accès à un lien de l'application par l'utilisateur

  2. redirection via .htaccess sur le point d'entrée EagleCore/index.php

  3. Lancement de l'application via Application::launch

  4. Insertion et vérification des configurations dans l'ordre

    • fonctions globales

    • blade + twig

    • environnement

    • framework

  5. Initialisation de la base de données si requis

  6. Lancement du router

Routing

Gestion de la maintenance

  1. Vérification dans l'environnement

  2. Si accès déjà autorisé le routing continue

  3. Sinon affichage de la page de maintenance ou lien spécial d'accès

  • Si le lien est lié à une ressource accessible alors, rendu de la ressource

Rendu du site

  1. Récupération de la route à afficher

  2. Vérification des conditions d'accès

  3. Gestion des données flash

  4. Appel du controller et de la méthode de gestion

Première étapeRoutingUtilisateur.htaccessclass 'Application'Insertion et vérification des configurationsInitialisation de la base de données si requisLancement du routerGestion de la maintenanceRendu de ressourceRendu du siteAccès à un lien de l'applicationRedirection vers le point d'entréeEagleCore/index.php'Lancement de l'applicationméthode launchDans l'ordrefonctions globales, blade + twig, environnement, frameworkVérification dans l'environnementVérification d'accès autoriséContinuer le routingAffichage de la page de maintenance ou lien spécial d'accèsRécupération de la route à afficherVérification des conditions d'accèsGestion des données flashAppel du controller et de la méthode de gestion Accès déjà autorisé ?NonOuiVérification de ressource accessibleNon

Enregistrement des routes

  • routes.php fichier utilisé par le framework permettant d'inclure les documents d'enregistrement d'api et web

  • web.php sert à l'enregistrement des routes web

  • api.php sert à l'enregistrement des routes d'api

<?php # routes d'api use EagleCore\Routing\Routes\RouteManager; RouteManager::registerGroup( linksPrefix: "/api/:apiVersion", routes: [], genericParamsConfig: ["apiVersion" => "[0-9_]+"], groupAccessVerifiers: [] ); # ou RouteManager::registerGroup( linksPrefix: "/api", routes: [], groupAccessVerifiers: [] );

Enregistrement d'une route

<?php use Yahvya\EagleFramework\Routing\Response\BladeResponse; use Yahvya\EagleFramework\Routing\Routes\RouteManager; RouteManager::registerRoute( requestMethod: "GET", link: "/", toExecute: fn(): BladeResponse => new BladeResponse( pathFromViews: "eagle", datas: ["websiteLink" => "https://yahvya.github.io/personal-eagle-framework-doc/starter-topic.html"] ), routeName: "eagle" );

Enregistrement d'un groupe de routes

<?php # routes d'api use EagleCore\Routing\Routes\RouteManager; use EagleCore\Routing\Response\BladeResponse; use EagleCore\Routing\Routes\Route; RouteManager::registerGroup( linksPrefix: "/api", routes: [ Route::get( link: "/", toExecute: fn():BladeResponse => new BladeResponse("eagle",["websiteLink" => "https://yahvya.github.io/eagle-final-doc/"]), routeName: "eagle" ), Route::get( link: "/test", toExecute: fn():BladeResponse => new BladeResponse("eagle",["websiteLink" => "https://yahvya.github.io/eagle-final-doc/"]), routeName: "eagle" ) ], groupAccessVerifiers: [] );

Ce code donnera les routes, accessible en get :

  • /api

  • /api/test

Paramètres de création de route

Route::method(string $link, Closure|array $toExecute, string $routeName, array $genericParamsRegex = [], array $accessVerifiers = [])
  • $link lien associé. Ce lien peut contenir des paramètres génériques au format défini par framework.php. Voir la définition de format

  • $toExecute Callable à appeler pour traiter la requête

    <?php # pour la route /test/:username/test2 function treatmentFunction(Request $requestManager,string $username):JsonResponse{ return ["username" => $username]; }

    ou

    [Controller::class,"methodName"]

  • $routeName nom unique de la route (format libre)

  • $genericParamsRegex configuration des regex associés aux paramètres génériques

    <?php # pour la route /test/:articleName/:id ["articleName" => "[a-z\-0-9]+","id" => "[0-9]+"]
  • $accessVerifiers Conditions de vérification d'accès à la route

    <?php [new Verifier(verifier: [CustomApiController::class,"checkApiAccess"],onFailure: [CustomApiController::class,"refuseApiAccess"])] # ou [new Verifier(verifier: fn(Request $requestManager):bool => false,onFailure: fn():RedirectResponse => ...]

Sous fichiers de route

Cette fonction prend en paramètre le chemin du fichier sans son extension qui doit être .php avec comme racine le dossier routes.

  • routes

    • web.php

    • routes.php

    • api.php

    • custom-routes

      • authentication.php

Pour charger le fichier authentication.php, vous pouvez utiliser la fonction spécifiée ci-dessus dans le fichier web.php.

RouteManager::fromFile(filename: "custom-routes/authentication");

Mode de développement

Mise à jour du mode dans l'environnement

13 août 2025