UnderCurrent/app/Controller/HelloWorldController.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!");
}
}