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(): ResponseInterface
|
|
{
|
|
return new GenericResponse('Index, <a href="/hello">Hello</a>');
|
|
}
|
|
|
|
#[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')]
|
|
public function view(): ViewInterface
|
|
{
|
|
return new BaseView('/Template/home.php', ['message' => 'Hello World!']);
|
|
}
|
|
|
|
#[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!");
|
|
}
|
|
} |