PHP 8'de routing, web uygulamalarında gelen istekleri doğru işlevlere veya sayfalara yönlendirmek için kullanılan bir mekanizmadır. Routing, kullanıcıların tarayıcılarına yazdıkları URL'lere göre hangi işlevlerin çalışacağını belirler. Aşağıda PHP 8 ile routing konusunu detaylı bir şekilde ele alacağız.
1. Routing Nedir?
Routing, HTTP isteklerini (GET, POST, PUT, DELETE vb.) belirli URL'lere eşleyerek, bu isteklere karşılık gelen kod parçalarını veya işlevleri çalıştıran bir süreçtir. Özellikle MVC (Model-View-Controller) yapılarında, routing, istemci isteklerinin uygun kontrolcülere yönlendirilmesini sağlar.
2. Basit PHP Routing Örneği
PHP'de basit bir routing mekanizması oluşturmak için URL'leri analiz edebilir ve buna göre belirli işlevleri çağırabiliriz. Aşağıda, basit bir routing yapısının nasıl oluşturulacağına dair bir örnek bulunmaktadır.
2.1. Proje Yapısı
my_app/ │ ├── index.php ├── routes.php └── controllers/ ├── HomeController.php └── AboutController.php
2.2. index.php
Ana giriş noktası olan index.php
dosyasında routing işlemlerini yapacağız.
<?php
require_once 'routes.php';
// URL'yi al
$requestUri = $_SERVER['REQUEST_URI'];
// Routing işlemini gerçekleştirme
route($requestUri);
?>
2.3. routes.php
Routing işlemlerini gerçekleştireceğimiz dosya.
<?php
function route(
$uri
) {
switch ($uri) {
case '/':
HomeController::index();
break;
case '/about':
AboutController::index();
break;
default:
http_response_code(404);
echo "404 Not Found";
break;
}
}
?>
2.4. HomeController.php
HomeController
sınıfı.
<?php
class HomeController {
public static
function index(
) {
echo "Anasayfa";
}
}
?>
2.5. AboutController.php
AboutController
sınıfı.
<?php
class AboutController {
public static
function index(
) {
echo "Hakkında Sayfası";
}
}
?>
3. Routing Nasıl Çalışır?
-
URL'yi Alma:
$_SERVER['REQUEST_URI']
kullanarak istemcinin tarayıcısında yazdığı URL'yi alıyoruz. -
Routing İşlemi:
route()
fonksiyonu, alınan URL'ye göre uygun işlev veya sınıfı çağırır. Burada birswitch
yapısı kullanarak, her URL'ye karşılık gelen kontrolcü işlevini belirliyoruz. -
Kontrolcü İşlevleri: Her kontrolcü, belirli bir sayfayı veya işlemi temsil eder. Örneğin,
HomeController
anasayfayı,AboutController
ise hakkında sayfasını temsil eder. -
Hata Yönetimi: Eğer URL, tanımlı rotalara uymuyorsa, 404 hata kodu döndürülür ve kullanıcıya "404 Not Found" mesajı gösterilir.
4. Laravel'de Routing
Eğer Laravel kullanıyorsanız, routing işlemleri çok daha basit ve güçlü bir şekilde gerçekleştirilir. Laravel'de routing için routes/web.php
dosyasında aşağıdaki gibi tanımlamalar yapabilirsiniz:
use IlluminateSupportFacadesRoute;
Route::get('/', [HomeController::class, 'index']);
Route::get('/about', [AboutController::class, 'index']);
Bu yapı, Laravel'in yönlendirme sisteminin güçlü özelliklerinden yararlanmanızı sağlar. Laravel otomatik olarak HTTP isteklerini kontrol eder ve uygun kontrolcü işlevini çağırır.
Sonuç
PHP 8 ile routing, web uygulamalarının temel yapı taşlarından biridir. Basit bir routing sistemi kurarak, URL'leri dinleyip bunlara göre farklı işlevler çağırabiliriz. Daha karmaşık uygulamalarda, framework kullanmak (örneğin, Laravel) geliştirme sürecini hızlandırır ve daha temiz bir yapı sağlar.