Routing - Web Routes (application/routes.php)
Dokumentacja jest stale rozwijana i aktualizowana wraz z postępem projektu. Ponieważ powstaje ona równolegle z kodem, niektóre sekcje mogą tymczasowo odnosić się do wcześniejszych wersji systemu - są one sukcesywnie dostosowywane do bieżącego stanu aplikacji. Jeśli zauważysz nieaktualne informacje, zgłoś to lub załóż Issue / Pull Request.
Dokumentacja
# Routing - Web Routes (application/routes.php)
Routing w DbM Framework odpowiada za mapowanie adresów URL (ścieżek HTTP) na metody kontrolerów. Dzięki temu każda strona ma jednoznaczne powiązanie z logiką aplikacji.
# Definiowanie tras
$router->get('/path', [NameController::class, 'methodName'], 'route_name');
# Parametry:
| Parametr | Opis |
|---|---|
/path | Ścieżka URL (np. /contact, /blog/{slug}) |
[NameController::class, 'methodName'] | Klasa kontrolera i metoda obsługująca żądanie |
'route_name' | Unikalna nazwa trasy (opcjonalna, ale zalecana) |
# Dostępne metody
| Metoda | Opis |
|---|---|
$router->get() | Obsługuje żądania HTTP GET |
$router->post() | Obsługuje żądania POST (np. formularze) |
$router->group() | Tworzy grupę tras z wspólnym prefixem (np. /panel) |
# Przykłady
// Strona główna
$router->get('/', [IndexController::class, 'index'], 'index');
// Formularz kontaktowy
$router->get('/contact', [ContactController::class, 'form'], 'contact_form');
$router->post('/contact', [ContactController::class, 'submit'], 'contact_submit');
// Panel administracyjny
$panel = '/' . getenv('APP_PANEL');
$router->group($panel, function (Router $router) {
$router->get('/dashboard', [AdminController::class, 'dashboard'], 'admin_dashboard');
});
# Dynamiczne parametry
Framework automatycznie rozpoznaje parametry w klamrach {}:
| Wzorzec | Przykład dopasowania |
|---|---|
/blog/{slug} | /blog/moj-artykul |
/product/{id} | /product/42 |
/article/{category}/{id} | /article/it/23 |
Przekazywane są jako argumenty do metody kontrolera:
public function show(string $slug)
{
// ...
}
# Grupy tras
Grupy ułatwiają logiczne pogrupowanie tras z tym samym prefixem:
$router->group('/admin', function (Router $router) {
$router->get('/users', [UserController::class, 'index'], 'admin_users');
$router->get('/users/{id}', [UserController::class, 'view'], 'admin_user_view');
});
# Generowanie adresów URL - w systemie szablonów - metoda path()
$url = $router->generatePath('admin_user_view', ['id' => 5]);
Dla powyższej grupy tras zwraca: /admin/users/5
# Podsumowanie
DbM Framework zapewnia prosty, szybki i elastyczny routing webowy.
Nie potrzebujesz dodatkowych konfiguracji - wszystkie trasy definiujesz w jednym miejscu (routes.php).
Dzięki temu aplikacja pozostaje lekka, a logika przejrzysta.