Start project PHP Back.

50% routes.
This commit is contained in:
2026-03-20 11:40:11 +01:00
parent fedbf51c91
commit c36b95a15f
13 changed files with 555 additions and 1 deletions

37
src/Domain/Controller.php Normal file
View File

@@ -0,0 +1,37 @@
<?php
namespace App\Domain;
use App\Http\Route;
abstract class Controller {
/**
* Va permettre de créer une route en préremplissant certains arguments.
* Pour les paramètres, veuillez voir le constructeur d'une Route.
*
* @param mixed ...$args
* @return Route
*
* @see Route::__construct()
*/
public static function Route( ...$args ): Route {
$defaults = [
'routeController' => static::class,
'routeMethods' => [ 'GET' ],
];
$args = array_merge($defaults, $args);
return new Route( ...$args );
}
/**
* Permet de définir les routes du controller sous le format d'une liste d'objets Route.
* Vous pouvez utiliser la method self::Route() pour préremplir des champs.
*
* @return Route[]
* @see self::Route()
*/
abstract public static function defineRoutes(): array;
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Domain\Pages;
use App\Domain\Controller;
/**
* Controller pour les pages sans lien avec un contenu spécifique.
* Exemple : Page d'accueil.
*/
class PagesController extends Controller {
public static function defineRoutes(): array
{
return [
self::Route( routeUrl: '/', routeName: 'Homepage', routeAction: 'index' ),
self::ROute( routeUrl: '/test/{int}', routeName: 'test', routeAction: 'test' ),
];
}
/**
* Route de la page d'accueil.
* @return void
*/
public function index(): void {
echo "Coucou";
}
public function test( int $id ): void {
echo "Coucou" . $id;
}
}