src/Controller/DocumentationController.php line 25
<?php
namespace App\Controller;
use App\RepositoryManager;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DocumentationController extends AbstractController
{
public function __construct(private readonly RepositoryManager $repositoryManager)
{
}
#[Route('/docs', name: 'documentation')]
public function index(): Response
{
return $this->render('documentation/index.html.twig', [
'repositories' => $this->repositoryManager->all(),
]);
}
#[Route('/docs/{repository}/{version}/{page}', name: 'documentation_page', defaults: ['page' => ''], requirements: ['page' => '.+'])]
public function page(string $repository, string $version, string $page): Response
{
$metadata = $this->repositoryManager->repository($repository);
if ($version === $metadata['current_version']) {
return $this->redirectToRoute('documentation_page', [
'repository' => $repository,
'version' => 'current',
'page' => $page,
]);
}
$page = $this->repositoryManager->page($repository, $version, $page);
return $this->render('documentation/page.html.twig', [
'repository' => $repository,
'repository_data' => $metadata,
'version' => $version,
'page' => $page,
]);
}
}