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:

ParametrOpis
/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

MetodaOpis
$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 {}:

WzorzecPrzykł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.