62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Controller;
|
|
|
|
use App\Entity\Book;
|
|
use App\View\RouteView;
|
|
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;
|
|
use Doctrine\ORM\EntityManager;
|
|
|
|
class HelloWorldController
|
|
{
|
|
#[Route('/')]
|
|
public function index(): ViewInterface
|
|
{
|
|
return new BaseView('/index');
|
|
}
|
|
|
|
#[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', ['name' => $name]);
|
|
}
|
|
|
|
#[Route('/routes')]
|
|
public function routes(RouterConfig $config): ViewInterface
|
|
{
|
|
return new RouteView($config);
|
|
}
|
|
|
|
#[Route('/world/{name}')]
|
|
public function world(string $name): ResponseInterface
|
|
{
|
|
return new GenericResponse("Hello $name!");
|
|
}
|
|
|
|
#[Route('/db')]
|
|
public function db(EntityManager $em): ResponseInterface
|
|
{
|
|
$repo = $em->getRepository(Book::class);
|
|
dump($repo->findAll());
|
|
|
|
return new GenericResponse("DB stuff");
|
|
}
|
|
} |