55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Controller;
 | |
| 
 | |
| use Ardent\Undercurrent\Attribute\Route;
 | |
| use Ardent\Undercurrent\Http\GenericResponse;
 | |
| use Ardent\Undercurrent\Http\ResponseInterface;
 | |
| use Ardent\Undercurrent\Http\RouterConfig;
 | |
| use Ardent\Undercurrent\Http\StatusEnum;
 | |
| use Ardent\Undercurrent\View\BaseView;
 | |
| use Ardent\Undercurrent\View\ViewInterface;
 | |
| 
 | |
| class HelloWorldController
 | |
| {
 | |
|     #[Route('/')]
 | |
|     public function index(): ViewInterface
 | |
|     {
 | |
|         return new BaseView('/index.php');
 | |
|     }
 | |
| 
 | |
|     #[Route('/error')]
 | |
|     public function error(): ResponseInterface
 | |
|     {
 | |
|         return new GenericResponse('error', StatusEnum::NOT_FOUND);
 | |
|     }
 | |
| 
 | |
|     #[Route('/hello')]
 | |
|     public function hello(): ResponseInterface
 | |
|     {
 | |
|         return new GenericResponse('Hello World!');
 | |
|     }
 | |
| 
 | |
|     #[Route('/view/{name}')]
 | |
|     public function view(string $name): ViewInterface
 | |
|     {
 | |
|         return new BaseView('/home.php', ['name' => $name]);
 | |
|     }
 | |
| 
 | |
|     #[Route('/routes/{word}')]
 | |
|     public function routes(RouterConfig $config, string $word): ResponseInterface
 | |
|     {
 | |
|         $routes = implode('<br>', array_map(
 | |
|                 fn($route) => sprintf('%s - %s->%s', $route->getRoute()->path, $route->getController(), $route->getMethod()),
 | |
|                 $config->getRoutes()
 | |
|             )) . "<br>$word";
 | |
| 
 | |
|         return new GenericResponse($routes);
 | |
|     }
 | |
| 
 | |
|     #[Route('/world/{name}')]
 | |
|     public function world(string $name): ResponseInterface
 | |
|     {
 | |
|         return new GenericResponse("Hello $name!");
 | |
|     }
 | |
| } |