PHP
Routing yapısı
$_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
-
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 { }
-
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.
-
addRoute parametrelerini eşleştir
- $method
- HTTP yöntemi
- $path
- İstek yolu
- $handler
- İşleyici
- $routes
- Rota listesi
Sıradaki ders: CRUD endpoint'leri