Bunu sormamın nedeni, bir PHP betiğinin bir rota olmadığı için mi? Örneğin, bir article.php varsa o zaman rotanız basitçe http://mysite.com/article.php'dir .
Önceden basit bir dosya olarak var olan bir rota kavramını neden daha da soyutlayın?
Bunu sormamın nedeni, bir PHP betiğinin bir rota olmadığı için mi? Örneğin, bir article.php varsa o zaman rotanız basitçe http://mysite.com/article.php'dir .
Önceden basit bir dosya olarak var olan bir rota kavramını neden daha da soyutlayın?
Yanıtlar:
Bir yönlendiricinin ne yaptığını anlamak için, önce bir yeniden yazma motorunun ne olduğunu anlamanız gerekir. Gönderen Wikipedia makalesinin (vurgu benim):
Yeniden yazma motoru, bir web URL'sinin görünümünü değiştiren bir yazılımdır (URL yeniden yazma). Yeniden yazılmış URL'ler (bazen kısa, süslü URL'ler veya arama motoru dostu - SEF olarak da bilinir), web sayfalarına daha kısa ve daha alakalı görünen bağlantılar sağlamak için kullanılır. Teknik, bir web sayfası oluşturmak için kullanılan dosyalar ile Dünyaya sunulan URL arasında bir dereceye kadar bir boşluk ekler .
Yeniden yazma motoru kullanıldığında, URL ile bir PHP betiği arasında 1: 1 korelasyonunuz yoktur. Aynı makaleden bir örnek:
http://example.com/wiki/index.php?title=Page_title
olarak yeniden yazılabilir:
Tekniği kullanmanın çeşitli yararları vardır . PHP genellikle Apache ile sıkıca bağlandığından, en sık kullanılan yeniden yazma motoru Apache'nin mod_rewrite'ıdır .
URL’leri yeniden yazmak istiyorsanız, yönlendirme URL’yi alma, bileşenlere ayırma ve aranacak asıl komut dosyasının ne olduğuna karar verme işlemi olduğundan, bir tür yönlendirmeye ihtiyacınız vardır. Standart yönlendirici için dokümantasyon sayfasından Zend Framework sürecini olarak açıklıyor:
Yönlendirme, bir URI bitiş noktası (temel URL'den sonra gelen URI'nin bir kısmı) alma ve bu denetleyicinin hangi modülü, denetleyiciyi ve eylemi isteğini alacağını belirlemek için parametrelere ayırma işlemidir.
Günümüzde PHP çerçevelerinin çoğu MVC modeline dayanmaktadır ve MVC çerçevesine göre süreç şu şekildedir * :
index.php
komut dosyası olan ortak bir giriş noktasına iletir ,index.php
URL'yi alır ve yönlendirme işlemini başlatır.Parametreleri denetleyicilerle ve yöntemlerle eşleştirmek, genellikle yollar olarak bilinen karmaşık ve dinamik yönlendirme desenlerini işleyebilmek için normal ifadelerle eşleştirmeyi kullanır . CodeIgniter'ın URI Yönlendirme dokümantasyon sayfasında iyi rota örnekleri bulunabilir :
$ route ['journals'] = "bloglar";
$ route ['blog / joe'] = "bloglar / kullanıcılar / 34";
$ route ['product / (: any)'] = "catalog / product_lookup";
$ rota ['ürün / (: num)'] = "katalog / ürün_göstergesi_by_id / $ 1";
$route
Dizi anahtarları olarak desenler ve değerler olarak ortaya çıkan eylemler tutan controller/action_method/dynamic_parameter
biçimi.
* Bu, kanonik sürecin bir açıklaması olarak tasarlanmamıştır, sadece basitleştirilmiş bir açıklamadır.