CodeBlanks Logo Icon CodeBlanks

Routing yapısı

PHP kursu · İleri seviye · Ders 56/92

$_SERVER['REQUEST_METHOD'] ve URI ile basit bir routing kurarsın.

İsteği okumak

Bir REST API'de her istek iki temel bilgi taşır: HTTP yöntemi (GET, POST, PUT, DELETE) ve istek yolu (/tasks gibi). PHP'de bunlara $_SERVER süper globalinden ulaşırsın: $_SERVER['REQUEST_METHOD'] yöntemi, $_SERVER['PATH_INFO'] ise yolu verir.

CLI'da test ederken bu değerleri elden verirsin; böylece gerçek bir sunucu olmadan dağıtım mantığını doğrularsın. Yöntem ve yol birlikte bir rotayı benzersiz biçimde belirler.

Rotaları saklamak

addRoute yöntemi üç parametre alır: $method (yöntem), $path (yol) ve $handler (işleyici). Her çağrıda bu üçlüyü $this->routes dizisine eklersin. İşleyici bir closure (anonim fonksiyon) ya da bir fonksiyon adı olabilir; dispatch onu çağırır.

Üçlüyü ilişkisel bir dizi olarak eklemek, eşleşmeyi tek bir foreach ile aramayı kolaylaştırır. Her rota kaydı aynı yapıyı paylaşır.

Uygulama addRoute yöntemini ekle

Router sınıfına addRoute yöntemini ekle. İmzası public function addRoute(string $method, string $path, $handler): void olsun. Yöntem, üç değeri bir ilişkisel dizi olarak $this->routes dizisine eklesin: anahtarlar method, path ve handler. Demo satırı bir rota ekler ve rota sayısını yazdırır.

Örnek çözümü göster
void imzasını yaz. İçinde $this->routes[] = ["method" => $method, "path" => $path, "handler" => $handler]; satırıyla ekle.
Örnek çözüm:
<?php
// REST API projesi: Router + addRoute

class Router {
    public array $routes = [];
    public function addRoute(string $method, string $path, $handler): void {
    $this->routes[] = ["method" => $method, "path" => $path, "handler" => $handler];
}
}

// Demo:
$router = new Router();
$router->addRoute("GET", "/tasks", "handleGet");
echo count($router->routes);

Kendini test et

  1. Yöntem adını tamamla

    public function ____(string $method, string $path, $handler): void { }
    Cevabı göster
    public function addRoute(string $method, string $path, $handler): void { }
  2. addRoute yönteminin üç parametresi sırayla nedir?

    • $handler, $method, $path
    • $path, $method, $handler
    • $method, $path, $handler
    • $method, $handler, $path
    Cevabı göster

    $method, $path, $handler — Doğru. Önce yöntem, sonra yol, en son işleyici verilir; böylece rota doğal okunur.

  3. addRoute parametrelerini eşleştir

    $method
    HTTP yöntemi
    $path
    İstek yolu
    $handler
    İşleyici
    $routes
    Rota listesi

İleri seviye bölümündeki tüm dersler